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üÜöÖ]
	*	@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['origin']=/^[A-Z0-9-. ]+$/gi;
	mask['trLetter']=/^[A-Z0-9 şŞıİüÜğĞçÇöö]+$/gi;
	mask['adress']=/^[A-Z0-9 :.,\/şŞıİüÜğĞçÇöö]+$/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|| val=='' || val.charAt(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 && isV!=null ){	
					mesaj =formElem.getAttribute('message');
					if(val.length<isMask){
						errorMessaj[formElem.name]=true ;
					}
				}else if(val.length>0 && (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 ;
					}
				}	
				
				
				/*
				*	function kontrol
				*/
				isMask =formElem.getAttribute('function');
				
				if(isMask!=null){	
					mesaj =formElem.getAttribute('message');
					if(!eval(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;
					}	
				}
				/*
				*	function kontrol
				*/
				isMask =formElem.getAttribute('function');
				if(isMask!=null){	
					mesaj =formElem.getAttribute('message');
					if(!eval(isMask+"()")){
						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)	 
				 }
				 /*
				*	function kontrol
				*/
				isMask =formElem.getAttribute('function');
				
				if(isMask!=null){	
					mesaj =formElem.getAttribute('message');
					if(eval(isMask+"()")){
						errorMessaj[formElem.name]=true ;
					}
				}	
			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 checkAll(formobj,obj,refelem){
	var checkBoxObj=formobj.elements[refelem];
	if(checkBoxObj){
		for (i=0; i<checkBoxObj.length;i++){
			(obj.checked)?checkBoxObj[i].checked=true:checkBoxObj[i].checked=false;
		}
	}
}

function checkAll2(obj,refelem){
		
	var checkBoxObj= document.getElementsByTagName('input');
	
	if(checkBoxObj){
		for(i=0;i<checkBoxObj.length;i++){
			
			if(checkBoxObj[i].type=='checkbox' &&  checkBoxObj[i].name==refelem){
				//alert(checkBoxObj[i].type + ' ' + checkBoxObj[i].name)
				(checkBoxObj[i].checked)?checkBoxObj[i].checked=false:checkBoxObj[i].checked=true;
			}
			//(checkBoxObj[i].type=='checkbox' && checkBoxObj[i].name==refelem &&  checkBoxObj[i].checked)?checkBoxObj[i].checked=true:checkBoxObj[i].checked=false;
		}
	}
}


function showSubMenu(parent_id,obj,s,path){
			if(parent_id==0){
				return false;
			}else{
				var grid= document.getElementById('tableGrid');
				
				subDiv= grid.getElementsByTagName('div');
				for(i=0;i<subDiv.length;i++){
					p = subDiv[i].id.split(';');
					if(p[1]==parent_id){
						if(subDiv[i].style.display=='block'){
							subDiv[i].style.display='none';
							
							subDiv2= subDiv[i].getElementsByTagName('div');
							if(subDiv2){
								for(n=0;n<subDiv2.length;n++){
									if(subDiv2[i])
										subDiv2[i].style.display ='none'
								}//end for
							}
							if(s==1){
								obj.src=path+'images/elbow-end-plus.gif'
							}else if(s==0){
								obj.src=path+'images/elbow-end-plus-nl.gif'
							}
						}else{//end if
							subDiv[i].style.display='block';
							if(s==1){
								obj.src=path+'images/elbow-minus.gif'
							}else if(s==0){
								obj.src=path+'images/elbow-end-minus-nl.gif'
							}
							
						}
						
					}
				}
			}
			
		}

function ClearGsm(gsm){
		if(!gsm || gsm=='') return '';
		GsmArray=gsm.split(/(\r\n?|\n)/);
		var gsm_='';
		for(i=0 ;i<GsmArray.length;i++ ){
			if(GsmArray[i].replace(/([^0-9])/g,"")!='')
				gsm_+=GsmArray[i].replace(/([^0-9])/g,"")+"\n";
		}
		return gsm_;
}



/*
*
*------------------------------ Auto Size Win
*
*/
//really not important (the first two should be small for Opera's sake)
PositionX = 10;
PositionY = 10;
defaultWidth  = 600;
defaultHeight = 400;

//kinda important
var AutoClose = true;

//don't touch
function popImage(imageURL,imageTitle){
  var imgWin = window.open('','_blank','scrollbars=no,resizable=1,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY);
  if( !imgWin ) { return true; } //popup blockers should not cause errors
  imgWin.document.write('<html><head><title>'+imageTitle+'<\/title><script type="text\/javascript">\n'+
    'function resizeWinTo() {\n'+
    'if( !document.images.length ) { document.images[0] = document.layers[0].images[0]; }'+
    'var oH = document.images[0].height, oW = document.images[0].width;\n'+
    'if( !oH || window.doneAlready ) { return; }\n'+ //in case images are disabled
    'window.doneAlready = true;\n'+ //for Safari and Opera
    'var x = window; x.resizeTo( oW + 200, oH + 200 );\n'+
    'var myW = 0, myH = 0, d = x.document.documentElement, b = x.document.body;\n'+
    'if( x.innerWidth ) { myW = x.innerWidth; myH = x.innerHeight; }\n'+
    'else if( d && d.clientWidth ) { myW = d.clientWidth; myH = d.clientHeight; }\n'+
    'else if( b && b.clientWidth ) { myW = b.clientWidth; myH = b.clientHeight; }\n'+
    'if( window.opera && !document.childNodes ) { myW += 16; }\n'+
    'x.resizeTo( oW = oW + ( ( oW + 200 ) - myW ), oH = oH + ( (oH + 200 ) - myH ) );\n'+
    'var scW = screen.availWidth ? screen.availWidth : screen.width;\n'+
    'var scH = screen.availHeight ? screen.availHeight : screen.height;\n'+
    'if( !window.opera ) { x.moveTo(Math.round((scW-oW)/2),Math.round((scH-oH)/2)); }\n'+
    '}\n'+
    '<\/script>'+
    '<\/head><body onload="resizeWinTo();"'+(AutoClose?' onblur="self.close();"':'')+'>'+
    (document.layers?('<layer left="0" top="0">'):('<div style="position:absolute;left:0px;top:0px;display:table;">'))+
    '<img src="'+imageURL+'" alt="Loading image ..." title="" onload="resizeWinTo();">'+
    (document.layers?'<\/layer>':'<\/div>')+'<\/body><\/html>');
  imgWin.document.close();
  if( imgWin.focus ) { imgWin.focus(); }
 // return false;
}

/*
*
*------------------------------ Auto Size Win
*
*/