String.prototype.trim = function() {return this.replace(/^\s+|\s+$/g,"");}
String.prototype.ltrim = function() {return this.replace(/^\s+/,"");}
String.prototype.rtrim = function() {return this.replace(/\s+$/,"");}

var FIELD_TYPE_TEXT=1;
var FIELD_TYPE_TEXT_AREA=2;
var FIELD_TYPE_CHECKBOX=3;
var FIELD_TYPE_RADIO=4;
var FIELD_TYPE_SELECT=5;
var FIELD_TYPE_HTML_EDITOR=6;
var FIELD_TYPE_DIV=7;
var FIELD_TYPE_PASSWORD=8;
var FIELD_TYPE_CONFIRM_PWD=9;
var FIELD_TYPE_SAVE_BUTTON=10;
var FIELD_TYPE_PICTURE=11;

function startWait(){
    var curX=Event.pointerX(event)-16;
    var curY=Event.pointerY(event)-16;

    if (!$("generalWait")){
        var imgEl=new Element("img");
        imgEl.src="/images/ajax-loader_32.gif";
        imgEl.style.cssText="position:absolute;left:"+curX+"px;top:"+curY+"px;z-index:100";
        imgEl.id="generalWait";
        document.body.appendChild(imgEl);
    }
    else {
        $("generalWait").style.cssText="display:;position:absolute;left:"+curX+"px;top:"+curY+"px;z-index:100";
    }
}

function stopWait(){
    $("generalWait").style.display='none';
}


function selectFormData(calledBy,justLoginForms){
	if (typeof justLoginForms=="undefined"){
		justLoginForms="yes";
	}

	var url="/admin/common/select_form_data_container.php?calledBy="+calledBy+"&justLoginForms="+justLoginForms;
	window.showModalDialog(url, self, "center:yes;resizable:yes;dialogWidth:700px");
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name,defaultVal) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return defaultVal;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function saveLastValue(fieldId){
    createCookie("LastValue_"+fieldId,$("field_"+fieldId).value);
}

/*
var autoCompleteTimer = new Date().getTime();
function autoComplete(fieldId,value){
    var keyCode=event.keyCode;
    if (keyCode==13){
        $("autoComplete_"+fieldId).style.display="none";
        getDependOnFieldData(null,null,$("field_"+fieldId))
    }
    else{
        $("autoComplete_"+fieldId).style.display="";
        var url="/common_web_admin/common.php?progress=getAutoComplete&fieldId="+fieldId+"&value="+value;
        new Ajax.Request(url,{onSuccess:function (r){
                $("autoComplete_"+fieldId).innerHTML=r.responseText;
                if (keyCode==40){
                    //$("autoCompleteCombo_"+fieldId).focus();
                    $("autoCompleteCombo_"+fieldId).selectedIndex=$("autoCompleteCombo_"+fieldId).selectedIndex+1;
                    $("autoCompleteCombo_"+fieldId).focus();
                }
            }
        });
    }
}
*/

function recordList(fieldId,gridRowIndex,colId){
    var url="/common_web_admin/record_list.php?fieldId="+fieldId;
    var returnValue=window.showModalDialog(url,"","dialogWidth:900px;dialogHeight:600px;")
    if (typeof returnValue!="undefined"){
        if (typeof gridRowIndex=="undefined"){
            if (typeof $("field_"+fieldId).options!="undefined"){
                for(var ii=0;ii<$("field_"+fieldId).options.length;ii++){
                    if ($("field_"+fieldId).options[ii].innerHTML==returnValue){
                        $("field_"+fieldId).options[ii].selected=true;
                        break;
                    }
                }
            }
            else{
                $("field_"+fieldId).value=returnValue;
            }
            getDependOnFieldData(null, null, $("field_"+fieldId));
        }
        else{
            var colProps=arrGrid[activeGridName].getColPropsByColId(colId);
            if (colProps.get("editable")){
                $("data_"+gridRowIndex+"_"+colId).value=returnValue;
            }
            else{
                $("cell_"+gridRowIndex+"_"+colId).innerHTML=returnValue;
            }
            event.keyCode=13;
            arrGrid[activeGridName].onKeyDown();
            event.keyCode=9;
        }
    }

    //window.open(url);
}

function clearChildFields(mainFieldId,index){
	var childDefIndexMainField="";
	if (index!=null){
		childDefIndexMainField=mainFieldId+"_"+index;
	}
	else childDefIndexMainField=mainFieldId;

	if (typeof childFieldDefaults != 'undefined'){
        if (childFieldDefaults.get(childDefIndexMainField)==null) return;
        if (childFieldDefaults.get(childDefIndexMainField).keys.length==0) return;

        childFieldDefaults.get(childDefIndexMainField).each(function (childFieldProp){
                $(childFieldProp.key).options.length=0;
                var option=document.createElement("option");
                option.value=childFieldDefaults[childDefIndexMainField][childFieldProp.key];
                option.text="Seçiniz";
                $(childFieldProp.key).options.add(option);
            }
        )
    }
}

function convertForTurkishChar(value){
    value=value.replace(/ı/g,"%C4%B1").replace(/İ/g,"%C4%B0");
    value=value.replace(/ş/g,"%C5%9F").replace(/Ş/g,"%C5%9E");
    value=value.replace(/ç/g,"%C3%A7").replace(/Ç/g,"%C3%87");
    value=value.replace(/ğ/g,"%C4%9F").replace(/Ğ/g,"%C4%9E");
    value=value.replace(/ü/g,"%C3%BC").replace(/Ü/g,"%C3%9C");
    value=value.replace(/ö/g,"%C3%B6").replace(/Ö/g,"%C3%96");
    return value;
}

//recId raporda update olan alanlardan geliyor.
function getDependOnFieldData(e,fieldElId,el){
    //alert(fieldElId);
    if (typeof el=="undefined"){
        if (e!=null){
            el = Event.element(e);
            fieldElId=el.id;
        }
        else{
            el=$(fieldElId);
        }
    }
    else{
        fieldElId=el.id;
    }

    if (typeof fieldElId=="undefined") return;

	var underscoreCount=0;
	for(var ii=0;ii<fieldElId.length;ii++){
		if (fieldElId.charAt(ii)=="_"){
			underscoreCount++;
		}
	}
	
	var queryId=el.readAttribute("queryId");
	var queryFieldId=el.readAttribute("queryFieldId");
	
	var paramStr="progress=getDependOnFieldData";
	var fieldId=null;
	var index=null;

	//alt çizgi sayısı 2 ise bu bir yatay form girişidir ve ikinci sıra indexını ilk alan id sini gösterir.
	if (underscoreCount==2){
		var arrField=fieldElId.split("_");
		fieldId=arrField[1];
		index=arrField[2];
		paramStr+="&fieldId="+fieldId+"&fieldValue="+$(fieldElId).value+"&index="+index;
	}
	//alt çizgi 3 ise rapordan gelen güncelleme alanı.
	else if (underscoreCount==3){
		var arrField=fieldElId.split("_");
		fieldId=arrField[1];
		index=arrField[2];
		recId=arrField[3];
		paramStr+="&fieldId="+fieldId+"&fieldValue="+$(fieldElId).value+"&index="+index+"&recId="+recId;
	}
	else{
		fieldId=fieldElId.replace("field_","");
		if (queryFieldId!=null){
			paramStr+="&fieldId="+fieldId+"&fieldValue="+$(fieldElId).value+"&queryId="+queryId+"&queryFieldId="+queryFieldId;
		}
		else{
			paramStr+="&fieldId="+fieldId+"&fieldValue="+$(fieldElId).value;
		}
	}
	
	clearChildFields(fieldId,index);
	var url=commonPhpUrl+"?"+convertForTurkishChar(paramStr);
	new Ajax.Request(url, 
			{
				onComplete:function (request){
					request.responseText.evalScripts();
				}
		});
}


function replaceFormulaValue(formula,formId,gridForm,gridRowIndex){
    formFieldList[formId].each(function (field){
			var formulaName=field.value.get("formulaName");
			var fieldId=field.value.get("fieldId");
            var fieldValue=0;

			if (formulaName!=""){
                if (!gridForm){
                    //rexp = new RegExp("\\b"+formulaName+"\\b","g");
                    var type=field.value.get("type");
                    switch (type){
                        case FIELD_TYPE_TEXT:
                            fieldValue=$("field_"+fieldId).value;
                            break;

                        case FIELD_TYPE_DIV:
                            fieldValue=$("display_field_"+fieldId).innerHTML;
                            break;
                    }
                    
                    if (fieldValue=="")
                        fieldValue=0;
                    else{
                        fieldValue=fieldValue.toString().replace(/\./g,"");
                        fieldValue=fieldValue.toString().replace(/\,/g,".");
                    }


                }
                else{
                    if (typeof gridRowIndex!="undefined"){
                        if (arrGrid["formgrid_"+formId].dataList!=null){
                            if (gridRowIndex>=0 && arrGrid["formgrid_"+formId].dataList[gridRowIndex]!=null){
                                fieldValue=arrGrid["formgrid_"+formId].dataList[gridRowIndex][field.value.get("fieldName")];
                            }
                        }
                        if (fieldValue=="") fieldValue=0;
                    }
                }

                var regExp = new RegExp("\\b" + formulaName + "\\b","gi");
                //formula=formula.replace("\\b"+formulaName+"\\b/g",fieldValue);
                formula=formula.replace(regExp,fieldValue);

			}
		}
	)
    return formula;
}

function calculateFormula(formId,formula,gridForm,gridRowIndex){
    var arrGridFunctions=formula.match(/(arrGrid\[[^\)]+\]\.[a-z]+)(\(.*\))?/g);
    if (arrGridFunctions!=null){
        for(var kk=0;kk<arrGridFunctions.length;kk++){
            eval("try{var result=0; result="+arrGridFunctions[kk]+"} catch(e){}");
            formula=formula.replace(arrGridFunctions[kk],result);
        }
    }
    
    formula=replaceFormulaValue(formula,formId,gridForm,gridRowIndex);

    if (typeof arrGrid!="undefined"){
        if (typeof arrGrid["formgrid_"+formId]!="undefined"){
            arrGrid["formgrid_"+formId].columns.each(function (field){
                var formulaName=field.get("formulaName");
                if (formulaName!=''){
                    var fieldValue=arrGrid["formgrid_"+formId].dataList[gridRowIndex][field.get("fieldName")];
                    if (fieldValue=="")
                        fieldValue=0;
                    else{
                        fieldValue=fieldValue.toString().replace(/\./g,"");
                        fieldValue=fieldValue.toString().replace(/\,/g,".");
                    }
                    formula=formula.replace(formulaName,fieldValue);
                }
            });
            formula=replaceFormulaValue(formula,arrGrid["formgrid_"+formId].inUseFormId,false,-1);
        }
    }

	var result=0;
	try{
		eval("result="+formula);
		}
	catch(err){}
		
	return result;
}

function calculateField(formId,formFields,gridRowIndex){
    var gridForm=false;
    
    if (typeof arrGrid!="undefined"){
        if (typeof arrGrid["formgrid_"+formId]!="undefined"){gridForm=true;}
    }

    if (typeof formFields!="undefined"){
        formFields.each(function (field){
            if (field.value.get("dataSource")==4){
                var formula=field.value.get("formula");
                var result=calculateFormula(formId,formula,gridForm,gridRowIndex);
                if (!isNaN(result)){
                    var resultWithFormat=formatCurrency(result,0);
                    var type=field.value.get("type");
                    var fieldId=field.value.get("fieldId");

                    if (!gridForm){
                        switch (type){
                            case FIELD_TYPE_TEXT:
                                $("field_"+fieldId).value=resultWithFormat;
                                break;

                            case FIELD_TYPE_DIV:
                                $("display_field_"+fieldId).innerHTML=resultWithFormat;
                                break;
                        }
                    }
                    else if (typeof gridRowIndex!="undefined" && gridRowIndex>=0){
                        var colProps=arrGrid["formgrid_"+formId].getColPropsByFormFieldId(fieldId);
                        var colElId=gridRowIndex+"_"+colProps.get("colId");
                        if (!colProps.get("editable")){
                            if ($("cell_"+gridRowIndex+"_"+colProps.get("colId")))
                                $("cell_"+gridRowIndex+"_"+colProps.get("colId")).innerHTML=resultWithFormat+"<input type='hidden' name='data_"+colElId+"' id='data_"+colElId+"' value='"+resultWithFormat+"'></input>";
                        }
                        else{
                            if ($("data_"+gridRowIndex+"_"+colProps.get("colId"))) $("data_"+gridRowIndex+"_"+colProps.get("colId")).value=resultWithFormat;
                        }

                        if (arrGrid["formgrid_"+formId].dataList[gridRowIndex]!=null){
                            arrGrid["formgrid_"+formId].dataList[gridRowIndex][colProps.get("fieldName")]=result;
                        }
                    }
                }
            };
        })
    }
}

function findAndCalculateField(gridRowIndex){
    formFieldList.each(function (formFields,formId){
        if (typeof formFields!="undefined"){
            calculateField(formId,formFields,gridRowIndex);
        }
    });

}

function formatCurrency(strValue,currencyId)
{
	if (strValue==null) return;
	if (currencyId==null) currencyId=0;

	if (strValue=="") strValue=0;
	
	//strValue=strValue.toString().replace(".","");
	//strValue=strValue.toString().replace(",",".");
	strValue = strValue.toString().replace(/\$|\,/g,'');
	dblValue = parseFloat(strValue);

	blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
	dblValue = Math.floor(dblValue*100+0.50000000001);
	intCents = dblValue%100;
	strCents = intCents.toString();
	dblValue = Math.floor(dblValue/100).toString();
	if(intCents<10)
		strCents = "0" + strCents;
	for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
		dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+'.'+
		dblValue.substring(dblValue.length-(4*i+3));
	if (currencyId==0)
		return (((blnSign)?'':'-') + dblValue + ',' + strCents);
	else
		return (((blnSign)?'':'-') + dblValue + ',' + strCents)+ " " +arrCurr.get(currencyId);
}


function getElementByAttribute(attributeName,attributeValue,tagList){
	var foundEl=null;

	if (tagList==null){
		$A(document.getElementsByTagName("select")).each(function (el){
				if ($(el.id).readAttribute(attributeName)==attributeValue){
					foundEl=$(el.id);
				}
			});
	}
	else{
		var arrTag=tagList.split("|");
		arrTag.each(function (tag){
			$A(document.getElementsByTagName(tag)).each(function (el){
							if (el.id!=""){ 
								if ($(el.id).readAttribute(attributeName)==attributeValue){
									foundEl=$(el.id);
								}
							}
						});		
		});
	}
	return foundEl;
}

function checkFieldsViewConditions(){
	for (var ii=0;ii<fieldViewCond.length;ii++){
		eval("if ("+fieldViewCond[ii]["conditonStr"]+"){$('"+fieldViewCond[ii]["areaDivId"]+"').style.display='block';} else{$('"+fieldViewCond[ii]["areaDivId"]+"').style.display='none';};");
	}
}


function parseWeatherResponse(response,index) {
	var xmlobject = response.responseXML;
	counter = 0;
	data = "<table webfield='yes' index='"+index+"' border='0' align='center' width='100%'><tr>";
	var imgurl = xmlobject.documentElement.firstChild.getAttribute('imagerelativeurl');

	for(i = 0; i<xmlobject.documentElement.firstChild.childNodes.length;i++) {
		var img = xmlobject.documentElement.firstChild.childNodes[i].getAttribute("skycodeday");
		if(img != null) {
			if(dayCount > counter) {
				var day = xmlobject.documentElement.firstChild.childNodes[i].getAttribute("day");
				var high = xmlobject.documentElement.firstChild.childNodes[i].getAttribute("high");
				var low = xmlobject.documentElement.firstChild.childNodes[i].getAttribute("low");
				var skytextday = xmlobject.documentElement.firstChild.childNodes[i].getAttribute("skytextday");
				data += "<td indicateWebField='yes' index='"+index+"' align='center'>"+day + '<br /><img indicateWebField="yes" src="' + imgurl + img + '.gif"><br />'+low+"&#176; / "+high+"&#176; <br />" + skytextday + "</td>";
				counter++;	
			}
		}
	}
	
	$(areaDivId).innerHTML=data + "</tr></table>";
}

function openUrl(url,isNewWin,width){
	if (isNewWin==1){
		window.open(url,"mywin","resizable=1,width="+width);
	}
	else if (isNewWin==2){
		window.showModalDialog(url,"mywin","center:yes,resizable=1,dialogWidth="+width);
	}	
	else{
		document.location=url;
	}
}

function styleChange(e){
	if (lastHoverEl!=null){
		lastHoverEl.removeClassName("style_"+catStyleIdOnHover);
		lastHoverEl.addClassName("style_"+catStyleId);
	}
	
	el = Event.element(e);
	if (el.tagName!="TABLE"){
		//ana element olan tabloyu bulasıya dön
		while(true){
			var parentEl=el.up();
			if (parentEl.tagName=="TABLE"){
				el=parentEl;
				break;
			}
			el=parentEl;
		}
	}
	
	el.addClassName("style_"+catStyleIdOnHover);
	el.removeClassName("style_"+catStyleId);
	lastHoverEl=el;
}

function body_mouseover(e){
	var el=Event.element(e);
    if (el.getAttribute("parent")==null && el.getAttribute("parent")!='x'){
        if (typeof collapseMenu!="undefined") collapseMenu();
    }

    /*
	if (typeof activeMenuId!="undefined"){
		if (activeMenuId>0){
            var descendantOfActiveMenu=false;
            var parentMenuId=activeEl.getAttribute("parent");
            
            var parentEl=$("menu_"+activeEl.getAttribute("parent"));
            if (!parentEl){
                $("erencan").value+="-geldi";
                //collapseMenu();
                return;
            }

            while(true){
                if (parentMenuId==activeMenuId){
                    descendantOfActiveMenu=true;
                    break;
                }

                if (parentEl.getAttribute('parentMenuId')==0) break;
                parentMenuId=parentEl.getAttribute('parentMenuId');
                parentEl=$("menu_"+parentMenuId);
                if (!parentEl) break;
            }

            if (!descendantOfActiveMenu){
                collapseMenu();
            }
            //activeMenuId=0;
		}
	}
    */
}

function mailList(type){
    var url="/common/common.php?progress=mailList&type="+type;
    startWait();
    $('frmMailList').action=url;
    $('frmMailList').request({method:'post',onComplete:function (r){r.responseText.evalScripts();stopWait();}});
}

function addToBasketAjax(recId,index){
    alert(1);
    if (index!=null){
        alert(2);
        var imgEl=$("img_"+index);
        if (imgEl){
            var oldSrc=$(imgEl).src;
            $(imgEl).src="/images/ajax-loader_16.gif";
        }
        alert(3);
    }
    new Ajax.Request('/commerce/basket.php?progress=addToBasket&withAjax=yes&recId='+recId,{onSuccess:function(r){if ($(imgEl)) $(imgEl).src=oldSrc;r.responseText.evalScripts();}});
}

function sendSmsFromField(formId,fieldId,recId){
    GB_show("SMS Gönder", "/common_web_admin/send_sms.php?formId="+formId+"&fieldId="+fieldId+"&recId="+recId);
}

function sendEmaiFromField(formId,fieldId,recId){
    GB_showFullScreen("Eposta Gönder", "/common_web_admin/send_email_with_select_data.php?formId="+formId+"&fieldId="+fieldId+"&recId="+recId);
}

function sendSmsFromReport(){
    $('frm').action="/common/send_sms_from_report.php?progress=setNumbers";
    $('frm').request({onComplete: function (){GB_show("SMS Gönder", "/common/send_sms_from_report.php")} })
}

function sendSmsFromReportAdmin(){
    $('frm').action="/common_web_admin/send_sms_from_report.php?progress=setNumbers";
    $('frm').request({onComplete: function (){GB_show("SMS Gönder", "/common_web_admin/send_sms_from_report.php")} })
}