﻿function FormatClean(num)
{
	
     var sVal='';
     var nVal = num.length;
     var sChar='';
     
   try
   {
      for(c=0;c<nVal;c++)
      {
         sChar = num.charAt(c);
         nChar = sChar.charCodeAt(0);
         if ((nChar >=48) && (nChar <=57))  { sVal += num.charAt(c);   }
      }
   }
    catch (exception) { AlertError("Format Clean",exception); }
    return sVal;
}
  

function FormatNumber(num,countryCode,decimalPlaces)
{
		

  var minus='';
  var comma='';
  var dec='';
  var preDecimal='';
  var postDecimal='';
  
  try 
  {
   
    decimalPlaces = parseInt(decimalPlaces);
    comma = GetCommaDelimiter(countryCode);
    dec = GetDecimalDelimiter(countryCode);
    
    if (decimalPlaces < 1) { dec = ''; }
    if (num.lastIndexOf("-") == 0) { minus='-'; }
   
    preDecimal = FormatClean(num);
    
    // preDecimal doesn't contain a number at all.
    // Return formatted zero representation.
    
    if (preDecimal.length < 1)
    {
       return minus + FormatEmptyNumber(dec,decimalPlaces);
    }
    
    // preDecimal is 0 or a series of 0's.
    // Return formatted zero representation.
    
    if (parseInt(preDecimal) < 1)
    {
       return minus + FormatEmptyNumber(dec,decimalPlaces);
    }
    
    // predecimal has no numbers to the left.
    // Return formatted zero representation.
    
    if (preDecimal.length == decimalPlaces)
    {
      return minus + '0' + dec + preDecimal;
    }
    
    // predecimal has fewer characters than the
    // specified number of decimal places.
    // Return formatted leading zero representation.
    
    if (preDecimal.length < decimalPlaces)
    {
       if (decimalPlaces == 2)
       {
        return minus + FormatEmptyNumber(dec,decimalPlaces - 1) + preDecimal;
       }
       return minus + FormatEmptyNumber(dec,decimalPlaces - 2) + preDecimal;
    }
    
    // predecimal contains enough characters to
    // qualify to need decimal points rendered.
    // Parse out the pre and post decimal values
    // for future formatting.
    
    if (preDecimal.length > decimalPlaces)
    {
      postDecimal = dec + preDecimal.substring(preDecimal.length - decimalPlaces,
                                               preDecimal.length);
      preDecimal = preDecimal.substring(0,preDecimal.length - decimalPlaces);
    }

    // Place comma oriented delimiter every 3 characters
    // against the numeric represenation of the "left" side
    // of the decimal representation.  When finished, return
    // both the left side comma formatted value together with
    // the right side decimal formatted value.
    
    var regex  = new RegExp('(-?[0-9]+)([0-9]{3})');
 
    while(regex.test(preDecimal))
    {
       preDecimal = preDecimal.replace(regex, '$1' + comma + '$2');
    }
       
  }
  catch (exception) { AlertError("Format Number",exception); }
  return minus + preDecimal + postDecimal;
}

function FormatEmptyNumber(decimalDelimiter,decimalPlaces)
{
	
    var preDecimal = '0';
    var postDecimal = '';
 
    for(i=0;i<decimalPlaces;i++)
    {
      if (i==0) { postDecimal += decimalDelimiter; }
      postDecimal += '0';
    }
   return preDecimal + postDecimal;
}


/* ------------------------------------- ARRAY TOOLS */
Array.prototype.remove=function(s){

  for(i=0;i<this.length;i++){

    if(s==this[i]) this.splice(i, 1);

  }

}
Array.prototype.removeIndex=function(s){

  for(i=0;i<this.length;i++){
    if(s==i) this.splice(i, 1);
  }

}
/* ------------------------------------- ARRAY TOOLS */ 


// JavaScript Document

// {{{ __evaluateJs()
    /**
    *Evaluate Javascript in the inserted content
     *
    *@private
     */	
function evaluateJs (obj)
	{
		obj=document.getElementById(obj);
		var scriptTags=obj.getElementsByTagName('SCRIPT');
		var string='';
		var jsCode='';
		for(var no=0;no<scriptTags.length;no++){	
			if(scriptTags[no].src){
				var head=document.getElementsByTagName("head")[0];
				var scriptObj=document.createElement("script");
		
				scriptObj.setAttribute("type", "text/javascript");
				scriptObj.setAttribute("src", scriptTags[no].src);  	
			}else{
			
			if(navigator.userAgent.toLowerCase().indexOf('opera')>=0){
				jsCode=jsCode+scriptTags[no].text+'\n';
			}
			else
				jsCode=jsCode+scriptTags[no].innerHTML;	
			}		
		}
		if(jsCode) installScript(jsCode);
	}
	
// }}}

// {{{ __installScript()
    /**
    * "Installs" the content of a <script> tag.
     *
    *@private        
     */	
	function installScript( script )
	{	
		try{
			if (!script)
				return;	
				if (window.execScript){        	
					window.execScript(script)
				}else if(window.jQuery&&jQuery.browser.safari){ 
	// safari detection in jQuery
					window.setTimeout(script,0);
				}else{        	
					window.setTimeout( script, 0 );
				} 
		}catch(e){
			
		}
	}	
	
/*
*	FORM
*/

function formData2QueryString(docForm) {
        var strSubmit       = '';
        var formElem;
        var strLastElemName = '';
        for (i = 0; i < docForm.elements.length; i++) {
                formElem = docForm.elements[i];
				if(formElem.disabled) continue;
                switch (formElem.type) {
                        // Text, select, hidden, password, textarea elements
                        case 'text':
                        case 'select-one':
						case 'select-multiple':
                        case 'hidden':
                        case 'password':
						case 'checkbox':
						case 'radio':
                        case 'textarea':
							if ( formElem.type == 'checkbox' ||  formElem.type =='radio'){
								if (formElem.checked==true ){
									strSubmit += formElem.name + 
									'=' +encodeURI(formElem.value) + '&'
								}else{
									strSubmit += formElem.name + '=&'
								}
							}else if (formElem.type == 'select-multiple'){
								strSubmit += formElem.name +'='
								str='';
								var j=0;
								for (m=0;m<formElem.length;m++){
									if(formElem.options[m].selected==true){									
										if ( j==0){
											str=formElem.options[m].value ;
										}else{
											str+=','+formElem.options[m].value ;
										}
										j++;
									}
								}
								strSubmit+=encodeURI(str)+'&';	
							}else{
							     strSubmit += formElem.name + 
                                '=' + encodeURI(formElem.value) + '&'
							}
                        break;
				}
		}
		return strSubmit;
}



function validateForm(formObj){
	/*
	*	Form Kontrol
	*	@message Alert Messaji
	*	@required gerekli
	*	@trLetter Türkçe karakter serbest [A-zO-9 sSçÇgGüÜûÛöÖşŞêÊî!",.;:_-?)(%\n\t\r\/êîûÊÎÛşŞıİüÜğĞçÇöö)(]+$/gi-_.,çÇîÎêÊşŞûÛ`?=)(/&%¤#"!><]
	*	@email	E-mail kontrol
	*	@numeric Kontrol
	*	@password kontrol [A-z0-9]
	*	@minlength	Minimum Miktar
	*	@maxlength	Maksimum
	*	@getAttribute
	*/
	var mask=new Array();
	var radios=new Array();
	var vElements=new Array();
	var mesaj;
	var result=true;
	var val;
	var radiosName="";
	var vChecked=false;
	var errorMessaj =new Array();
	var domainString='(com|org|net|mil|edu|info|mobi|travel|a[cdfgilmnoqrstuwxz]|b[abdefghijmnorstwyz]|c[acdfghiklmnoruvxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[adefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnrwyz]|l[abcikrstuvy]|m[acdghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eouw]|s[abcdeghiklmnrtvyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[etu]|z[amw])';
	
	mask['letter']=/^[A-Z0-9-]+$/gi;
	mask['trLetter']=/^[A-Z0-9 êîûÊÎÛşŞıİüÜğĞçÇöö]+$/gi-îÎşŞûÛçÇ.,iêÊ._!"#¤%&/()=?`;
	mask['adress']=/^[A-Z0-9 :'".,\n\t\r\/êîûÊÎÛşŞıİüÜğĞçÇöö)(]+$/gi-_.,çÇîÎêÊşŞûÛ`?=)(/&%¤#"!><;
	mask['numeric']=/^[0-9]+$/gi;
	mask['email']=new RegExp("^[A-Z0-9._%-]+@[A-Z0-9.-]+\\."+domainString+"$","gi");
	mask['domain']=new RegExp("^(https?\:\/\/)?[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\\."+domainString+"$","gi");
	mask['domains']=new RegExp("^([a-zA-Z0-9\-\.]+)?\\."+domainString+"$","gi");
	
	
	var input = formObj.getElementsByTagName('input');
	for(m=0;m<input.length;m++){
		if(input[m].disabled==false && (input[m].type.toLowerCase()=='radio' || input[m].type.toLowerCase()=='checkbox') ){
			var el = input[m];
			if(!radios[el.name]){
				radios[el.name]=new Array();
				for(var no=0;no<formObj.elements.length;no++){
					var formEl=formObj.elements[no];
					if(formEl.name==el.name)radios[el.name][radios[el.name].length]=formEl;
				}
			}
		}
			
			if( input[m].type.toLowerCase()!='button' && input[m].disabled==false )
				vElements[vElements.length]=input[m];
		//debugger;
	}
	
	var selectBox  =formObj.getElementsByTagName('select');
	for(m=0;m<selectBox.length;m++){
		if(selectBox[m].disabled==true)continue;
		vElements[vElements.length]=selectBox[m];
	}
	
	var textarea  =formObj.getElementsByTagName('textarea');
	for(m=0;m<textarea.length;m++){
		if(textarea[m].disabled==true)continue;
		vElements[vElements.length]=textarea[m];
	}


	for (i=0; i < vElements.length; i++) {
		isV="";
	 	formElem = vElements[i];	
		switch(formElem.type.toLowerCase()){
			case 'text':
			case 'textarea':
			case 'password':
				val =formElem.value;
				/*
				*	isRequired
				*/
				isV =formElem.getAttribute('required');

				if(isV!=null){
					mesaj =formElem.getAttribute('message');
					if(val.length==0){
						errorMessaj[formElem.name]=true;
					}
							
				}
				/*
				*	mask kontrol
				*/
				isMask =formElem.getAttribute('mask');
				if(isMask!=null && val.length!=0 ){
					if(mask[isMask]){
						mesaj =formElem.getAttribute('message');
						if(!val.match(mask[isMask])){
							errorMessaj[formElem.name]=true ;
						}
					}
				}
				/*
				*	minlength kontrol
				*/
				isMask =formElem.getAttribute('minlength');
				if(isMask!=null){	
					mesaj =formElem.getAttribute('message');
					if(val.length<isMask){
						errorMessaj[formElem.name]=true ;
					}
				}
				/*
				*	maxlength kontrol
				*/
				isMask =formElem.getAttribute('maxlength');
				if(isMask!=null){	
					mesaj =formElem.getAttribute('message');
					if(val.length>isMask){
						errorMessaj[formElem.name]=true ;
					}
				}		
			break;
			case 'select-one':
				/*
				*	isRequired
				*/
				isV =formElem.getAttribute('required');
				if(isV!=null){
					mesaj =formElem.getAttribute('message');
					val = formElem.options[formElem.selectedIndex].value;
					if(val==""){
						errorMessaj[formElem.name]=true;
					}	
				}
			break;
			case 'checkbox':
				 /*
				 *	CheckBox Kontrol
				 */
				 vChecked=false;
				 isV =formElem.getAttribute('required');
				 if(isV!=null){
					 mesaj =formElem.getAttribute('message');
					 //for(b in radios){
						 el=radios[formElem.name];		
						 for(n=0;n<el.length;n++){
						 
							// if (el[n].type!='checkbox')continue;
							 if(el[n].checked==true){
								 vChecked=true;
								 break;
							 }
						 }
					 //}
					 if(!vChecked){
						errorMessaj[formElem.name]=true; 
					}	
					 //alert(formElem.name)	 
				 }
			break;
			case 'radio':
				
				/*
				 *	Radios Kontrol
				 */
				 vChecked=false;
				 isV =formElem.getAttribute('required');
				 if(isV!=null){
					 mesaj =formElem.getAttribute('message');
					 //for(b in radios){
						 el=radios[formElem.name];	
						 for(n=0;n<el.length;n++){
						 	//if (el[n].name!='radio')continue;
							 if(el[n].checked==true){
								 vChecked=true;
								 break;
							 }							 
						 }
					 //}
					if(!vChecked){
						errorMessaj[formElem.name]=true; 
					}		 
				 }
			break;
			break;
		}// Switch	
		
		
			if(errorMessaj[formElem.name]){
				if(document.getElementById(formElem.name))
					if(radios[formElem.name]){
						el=radios[formElem.name];	
						 for(n=0;n<el.length;n++){
							 el[n].className="incorrectCheckbox"
						 }//end for
					}else{
						document.getElementById(formElem.name).className="incorrect";	
					}
					 
					
			result=false;	
			}else if(!errorMessaj[formElem.name]){
				if(document.getElementById(formElem.name))
					if(radios[formElem.name]){
						el=radios[formElem.name];	
						 for(n=0;n<el.length;n++){
							if(el[n].checked)
								el[n].className="correctCheckbox"
							else
								el[n].className=''
						 }//end for
					}else{
						document.getElementById(formElem.name).className="correct";	
					}
			}
	 }// end for
	 
	return result;
}// end Function


function modalWin(url,name) {
	return window.open(url,name,'height=425,width=500,toolbar=no,directories=no,status=no,continued from previous linemenubar=no,scrollbars=no,resizable=no ,modal=yes');
}

function MM_jumpMenu(targ,url,restore){ //v3.0
  eval(targ+".location='"+url+"'");
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


function checkForm(form){
	
	if(!validateForm(form)){
		alert('Ji kerema xwe re ciyê sor tije bike');	
	}else{
		form.submit();	
	}
	
}


