
var $p={}

$p.opensource={
    langs:{},
    selector: function (obj) {
        var lg = obj.value;
        if ( $p.opensource.langs[lg] ) {
            delete $p.opensource.langs[lg];
        } else {
            $p.opensource.langs[lg]=1;
        }
        document.getElementById('l10n').value='';
        for (var l in $p.opensource.langs) {
            document.getElementById('l10n').value+=l+",";
        }
        document.getElementById('l10n').value =document.getElementById('l10n').value.replace(/,$/,'');
   },
   fillLangs: function (list) {
        if (document.getElementById('l10n').value) {
            var l10n=document.getElementById('l10n').value;
            var reg=new RegExp(",", "g");
            var langs = l10n.split(reg);
            for (var i = 0; i < langs.length ; i++) {
                var lg = langs[i];
                $p.opensource.langs[lg]=1;
            }
        }
        for (var i =0 ; i<list.length;i++) {
            var lg = list[i].value;
            if ( $p.opensource.langs[lg] == 1 ) {
                list[i].checked=true;
            }
        }
   },
   displayAvailableLang: function (where,l10n) {
        var reg=new RegExp(",", "g");
        var langs = l10n.split(reg);
        var msglang= '';
        for (var i = 0; i < langs.length ; i++) {
            var lang = langs[i];
            msglang += $p.opensource.langlist[lang] + " ("+lang +"),&nbsp; ";
        }
        document.getElementById(where).innerHTML=msglang;
   },
   displayPortaneoKey: function (obj) {
        var reg=new RegExp("portaneo", "i");
        if (obj.value.match(reg)) {
            document.getElementById('portaneokey').style.display="block";
        }
   },
   checkError: function () {
        var reg=new RegExp("err=([0-9]+)", "");
        if ( document.location.search.match(reg) ) {
            var res = reg.exec(document.location.search);
            if (document.getElementById('errors')) {
                var errdiv = document.getElementById('errors');
                errdiv.innerHTML = document.getElementById('msg'+res[1]).innerHTML;
                errdiv.style.display="block";
                errdiv.style.background="#FFD363";
                errdiv.style.color="red";
                errdiv.style.fontWeight="bolder";
                errdiv.style.padding="10px";
            }
        }
   },
   urlopen:{},
   openhere: function (id,where,obj) {
        var here = document.getElementById(where);
        if ($p.opensource.urlopen[id] && $p.opensource.urlopen[id]['open'] == 1) {
            here.innerHTML='';
            $p.opensource.urlopen[id]['open'] = 2;
            return false;
        }
        $p.opensource.urlopen[id]={};
        $p.opensource.urlopen[id]['open'] = 1;
        var url = obj.href+'&popup=1';
        here.innerHTML='<iframe src="'+url+'" height="400" width="100%" frameborder=0></iframe>';
        return false;
   }
}

function checkEmail(v_email){
	var l_ret=true;
	var l_reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/;
	if (l_reg.exec(v_email)==null){l_ret=false;}
	return l_ret;
}
function _trim(v_s){
	var l_ws=new String(" \t\n\r");
	var l_ret=new String(v_s);
	if (l_ws.indexOf(l_ret.charAt(0))!=-1){
		var l_i=0,l_l=l_ret.length;
		while (l_i<l_l && l_ws.indexOf(l_ret.charAt(l_i))!=-1){
			l_i++;
		}
		l_ret=l_ret.substring(l_i,l_l);
	}
	return l_ret;
}
function checkFormFields(v_form){
	var error="";
	if (_trim(v_form.firstname.value)=="") error+="You need to enter your firstname\r\n";
	if (_trim(v_form.lastname.value)=="") error+="You need to enter your lastname\r\n";
	if (_trim(v_form.email.value)=="") error+="Your email is empty\r\n";
	if (!checkEmail(v_form.email.value)) error+="Your email is not valid\r\n";
	if (!v_form.contract.checked) error+="You need to accept the terms of the Portaneo Contribution Agreement";
	if (error==""){
		return true;
	} else {
		alert(error);
		return false;
	}
}
function is_plugins_commercial(commercial){
	if (commercial){
		document.getElementById("upload_area").style.display="none";
		document.getElementById("upload_area2").style.display="none";
	} else {
		document.getElementById("upload_area").style.display="block";
		document.getElementById("upload_area2").style.display="block";
	}
}
function checkSubmit(){
	if (!document.forms["f"].terms.checked){
		alert("You must accept the terms to submit your plugin");
		return false;
	}
	if (trim(document.forms["f"].author_name.value)==""){
		alert("Please enter your name !"); 
		return false;
	}
	if (document.forms["f"].author_email.value!=document.forms["f"].author_email_repeat.value){
		alert("Email confirmation is not correct !");
		return false;
	}
	if (!checkEmail(document.forms["f"].author_email.value)){
		alert("Your email is not correct !");
		return false;
	}
	if (trim(document.forms["f"].title.value)==""){
		alert("You must give a name to your plugin");
		return false;
	}
	if (trim(document.forms["f"].licence.value)==""){
		alert("You must specify the licence of your plugin (GPLv3, commercial, ...)");
		return false;
	}
	return true;
}