// (c)2011 MrOrange

﻿
if(mrO.isUndefined(mrO.utils)){mrO.utils=function(){};mrO.utils.submitting=false;};mrO.utils.getServerHostname=function(){return window.location.hostname;};mrO.utils.contains=function(string,value){return(string.indexOf(value)!=-1);};mrO.utils.indexOfInArray=function(array,value,propertyName){for(var i=0;i<array.length;i++){if(mrO.isDefined(propertyName)&&array[i][propertyName]===value[propertyName]){return i;}
else if(array[i]===value){return i;}}
return-1;};mrO.utils.isInArray=function(array,value,propertyName){return(this.indexOfInArray(array,value,propertyName)!=-1);};mrO.utils.isArray=function(object){return this.contains(object.constructor.toString(),"Array");};mrO.utils.isString=function(object){return typeof(object)==="string";};mrO.utils.mergeObjects=function(object1,object2,convertPropertiesToType){var object={};object=this.appendObject(object,object1,convertPropertiesToType);object=this.appendObject(object,object2,convertPropertiesToType);return object;};mrO.utils.appendObject=function(object1,object2,convertPropertiesToType){if(mrO.isDefined(object1)&&mrO.isDefined(object2)){for(var key in object2){if(mrO.isUndefined(object1[key])&&mrO.isDefined(object2[key])){if(convertPropertiesToType==="string"){object1[key]=object2[key].toString();}
else{object1[key]=object2[key];}}}}
return object1;};mrO.utils.toJSONStringFromObject=function(object){if(JSON.stringify){return JSON.stringify(object);}
else{mrO.utils.writeToConsole("mrO.utils.toJSONStringFromObject: Unable to locate JSON-parsing library!");return null;}};mrO.utils.regexISO=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/;mrO.utils.regexMSAjax=/^\/Date\((d|-|.*)\)\/$/;mrO.utils.JSONDateTimeReviver=function(key,value){if(typeof value==='string'){var a=mrO.utils.regexISO.exec(value);if(a)
return new Date(Date.UTC(+a[1],+a[2]-1,+a[3],+a[4],+a[5],+a[6]));a=mrO.utils.regexMSAjax.exec(value);if(a){var b=a[1].split(/[-,.]/);return new Date(+b[0]);}}
return value;}
mrO.utils.toObjectFromJSONString=function(str){if(JSON.parse){return JSON.parse(str,mrO.utils.JSONDateTimeReviver);}
else{mrO.utils.writeToConsole("mrO.utils.toObjectFromJSONString: Unable to locate JSON-parsing library!");return null;}};mrO.utils.ensureObject=function(object){if(this.isString(object)){return mrO.utils.toObjectFromJSONString(object);}
return object;};mrO.utils.getRequestParametersFromUrlString=function(requestUrl){var requestParams={};var requestParamArray=(requestUrl.split("?",2)[1]||"").split("#")[0].split("&")||[];for(var i=0;i<requestParamArray.length;i++){var param=requestParamArray[i].split("=");if(param[0]){requestParams[param[0]]=unescape(param[1].replace(/\+/g," "));}}
return requestParams;};mrO.utils.getWebServiceResponseData=function(response){if(mrO.isDefined(response.d)===false)
{return response;}
else if(typeof(response.d)==="string")
{return mrO.utils.toObjectFromJSONString(response.d);}
else if(mrO.isDefined(response.d)===true)
{return response.d;}
else
{if(mrO.page.debugging({sender:'mrO.utils.getWebServiceResponseData'})){mrO.utils.writeToConsole("mrO.utils.getWebServiceResponseData: This should not happen!");}
return response;}};mrO.utils.getRequestParametersString=function(parameters){var getRequestParamsString="";for(var paramId in parameters){if(paramId!==""&&parameters[paramId]!==null){getRequestParamsString=getRequestParamsString+paramId+"="+parameters[paramId]+"&";}}
return getRequestParamsString;};mrO.utils.writeToConsole=function(message,instance,functionName){var stringBuilder="";if(mrO.isDefined(instance)){stringBuilder=stringBuilder+"["+instance.className+"] ["+instance.id+"] ";}
if(mrO.isDefined(functionName)){stringBuilder=stringBuilder+"["+functionName+"] ";}
if(mrO.isDefined(message)){stringBuilder=stringBuilder+message;}
try{if(console&&console.debug){console.debug(stringBuilder);}}
catch(excetion){}};mrO.utils.getObjectAsString=function(arrayObject){var arrayObjectString="";for(var arrayParam in arrayObject){arrayObjectString=arrayObjectString+arrayParam+": "+arrayObject[arrayParam]+"("+typeof(arrayObject[arrayParam])+")\n";}
return arrayObjectString;};mrO.utils.alertObject=function(object){alert(this.getObjectAsString(object));};mrO.utils.printObject=function(object){mrO.utils.writeToConsole(this.getObjectAsString(oject));};mrO.utils.removeArrayElementByIndex=function(array,index){array.splice(index,1);};mrO.utils.isElementVisible=function(element){if($(element).is(':hidden')===false&&$(element).is(':visible')===true){return true;}else{return false;}};mrO.utils.isElementActive=function(element){if(this.isElementVisible(element)&&$(element).is(':disabled')===false){return true;}else{return false;}};mrO.utils.URLEncodeString=function(str){if(typeof(str)==='string'){return escape(str);}else{return str;}};mrO.utils.URLDecodeString=function(str){if(typeof(str)==='string'){return unescape(str);}else{return str;}};mrO.utils.genericWebServiceError=function(error){mrO.utils.writeToConsole(mrO.utils.getObjectAsString(error));};mrO.utils.genericWebServiceTimeout=function(timeout){mrO.utils.writeToConsole(mrO.utils.getObjectAsString(timeout));};mrO.utils.callWebServiceWithData=function(webService,args,parameters,callback,failCallback){args=mrO.getSettings(args);var dataValue="{'arguments': "+mrO.utils.toJSONStringFromObject(args);if(mrO.isDefined(parameters)){dataValue+=",'parameters':"+mrO.utils.toJSONStringFromObject(parameters);}
dataValue+="}";if(!mrO.isDefined(failCallback)){failCallback=mrO.utils.genericWebServiceError;}
var request=$.ajax({type:"POST",url:webService,data:dataValue,contentType:"application/json; charset=utf-8",dataType:"json",success:callback,error:failCallback,timeout:mrO.utils.genericWebServiceTimeout});return request;};mrO.utils.callWebServiceWithDataFromElementById=function(webService,callback,elementId){var selector='#'+elementId;var element=$(selector)[0];if(element!==null){var data=new Array();if(mrO.isUndefined(element)){mrO.utils.writeToConsole("calling webservice with unknown element: "+elementId);return;}else if(typeof(element)==='radio'||$(element).is("input:radio")){var groupName=element.name;var selectedButtonValue=$("input:radio[name="+groupName+"]:checked").val();data.push("dataFromElement:"+selectedButtonValue);mrO.utils.callWebServiceWithData(webService,data,null,callback);}else if(typeof(element)==='checkbox'||$(element).is("input:checkbox")){data.push("dataFromElement:"+$(element).is(':checked'));mrO.utils.callWebServiceWithData(webService,data,null,callback);}else{data.push("dataFromElement:"+$(element).val());mrO.utils.callWebServiceWithData(webService,data,null,callback);}}else{}};mrO.utils.callWebServiceWithDataFromElementsWithRelevance=function(webService,callback,elementsWithRelevance){var data={};for(relevance in elementsWithRelevance){var selector='#'+elementsWithRelevance[relevance];var element=$(selector)[0];mrO.utils.writeToConsole("finding match for: "+relevance);if(element!==null){if(mrO.isUndefined(element)){mrO.utils.writeToConsole("unknown element, id: "+selector);}else if(typeof(element)==='radio'||$(element).is("input:radio")){var groupName=element.name;var selectedButtonValue=$("input:radio[name="+groupName+"]:checked").val();data[relevance]=selectedButtonValue;mrO.utils.writeToConsole("pushed: "+relevance+":"+selectedButtonValue);}else if(typeof(element)==='checkbox'||$(element).is("input:checkbox")){data[relevance]=$(element).is(':checked');mrO.utils.writeToConsole("pushed: "+relevance+":"+$(element).is(':checked'));}else{data[relevance]=$(element).val();mrO.utils.writeToConsole("pushed: "+relevance+":"+$(element).val());}}else{mrO.utils.writeToConsole("that's no object gdammit!");}}
mrO.utils.callWebServiceWithData(webService,data,null,callback);};mrO.utils.disableInvalidDropdownElements=function(dropDownID){$('#'+dropDownID).children().each(function(){if($(this).val()==''){this.setAttribute('disabled','disabled');}});};mrO.utils.replacestring=function(str_normal,str_find,str_replace,int_case_insensitive){if(arguments.length<3||str_find==""||str_normal==""||typeof("".split)!="function")
return(str_normal);if(!(int_case_insensitive))
return(str_normal.split(str_find)).join(str_replace);str_find=str_find.toLowerCase();var rv="";var ix=str_normal.toLowerCase().indexOf(str_find);while(ix>-1){rv+=str_normal.substring(0,ix)+str_replace;str_normal=str_normal.substring(ix+str_find.length);ix=str_normal.toLowerCase().indexOf(str_find);};return(rv+str_normal);};mrO.utils.trimWhiteSpace=function(_string){for(var i=0;i<_string.length;i++){var c=_string.charAt(0);if(c==" "||c=="\n"){_string=_string.substring(1,_string.length);}
else{break;}}
for(var i=0;i<_string.length;i++){var c=_string.charAt(_string.length-1);if(c==" "||c=="\n"){_string=_string.substring(0,_string.length-1);}
else{break;}}
return _string;}
mrO.utils.identifyBrowser=function(){var browserName=navigator.userAgent.toLowerCase();if(browserName.indexOf('chrome')>-1){return"chrome";}}
mrO.utils.switchDisplay=function(lightClientId,darkenClientId){if(darkenClientId&&$("#"+darkenClientId)!=null)
$("#"+darkenClientId).attr("style","display:none");if(lightClientId&&$("#"+lightClientId)!=null)
$("#"+lightClientId).attr("style","display");}
mrO.utils.switchDisabledCssSuffix=function(enableClientId,disableClientId){var disabledSuffix="-disabled";if(disableClientId){var disableFieldClass=$("#"+disableClientId).attr("class");if(disableFieldClass&&!disableFieldClass.match(disabledSuffix+"$")){$("#"+disableClientId).attr("class",disableFieldClass+disabledSuffix).attr("disabled","disabled");}}
if(enableClientId){var enableFieldClass=$("#"+enableClientId).attr("class");if(enableFieldClass&&enableFieldClass.match(disabledSuffix+"$")){$("#"+enableClientId).attr("class",enableFieldClass.split(disabledSuffix)[0]).removeAttr("disabled");}}}
mrO.utils.validateLoginForm=function(emailFieldID,passwordFieldID,loginButtonID,loginButtonDisabledID,forgotPasswordID){var emailRegex=/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;if(emailFieldID&&emailRegex.test($("#"+emailFieldID).val())){if(forgotPasswordID){mrO.utils.switchDisplay(forgotPasswordID,null);}
if(passwordFieldID&&$("#"+passwordFieldID).val().length>0){if(loginButtonID){if(loginButtonDisabledID){mrO.utils.switchDisplay(loginButtonID,loginButtonDisabledID);}else{mrO.utils.switchDisabledCssSuffix(loginButtonID,null);}}
return true;}}
else{if(forgotPasswordID){mrO.utils.switchDisplay(null,forgotPasswordID);}}
if(loginButtonID){if(loginButtonDisabledID){mrO.utils.switchDisplay(loginButtonDisabledID,loginButtonID);}else{mrO.utils.switchDisabledCssSuffix(null,loginButtonID);}}
return true;}
mrO.utils.CreateBookmarkLink=function(){title=document.title;url=document.location.href;if(window.sidebar){window.sidebar.addPanel(title,url,"");}else if(window.external){window.external.AddFavorite(url,title);}else if(window.opera&&window.print){return true;}}
function querySt(ji){hu=window.location.search.substring(1);gy=hu.split("&");for(i=0;i<gy.length;i++){ft=gy[i].split("=");if(ft[0]==ji){return ft[1];}}}
