// (c)2011 MrOrange

﻿
if(mrO.isUndefined(mrO.page)){mrO.namespace("mrO.page");mrO.page.isDebuggingBool=false;mrO.namespace("mrO.page.objects");mrO.namespace("mrO.page.settings");mrO.page.submitting=false;mrO.page.settings.submitButtonTransparency=20;};mrO.page.registerSetting=function(settingName,settingValue){if(mrO.page.debugging({sender:"mrO.page.registerSetting"})){if(mrO.isDefined(this.settings[settingName])){mrO.utils.writeToConsole("mrO.page.registerSetting: Setting '"+settingName+"' already defined with value '"+this.settings[settingName]+"'");}}
this.settings[settingName]=settingValue;};mrO.page.getSetting=function(settingName){return this.settings[settingName];};mrO.page.setObject=function(classNames,object){for(var i=0;i<classNames.length;i++){if(mrO.isUndefined(this.objects[classNames[i]])){mrO.namespace("mrO.page.objects."+classNames[i]);}
this.objects[classNames[i]][object.id]=object;}};mrO.page.getObject=function(className){var objects=this.getObjects(className)
if(mrO.isDefined(objects)){for(var key in objects){return objects[key];};}
return null;};mrO.page.getObjects=function(className){if(mrO.isDefined(this.objects[className])){return this.objects[className];}
return null;};mrO.page.submitLock=function(){if(this.submitting===false){this.submitting=true;return true;}else{return false;}};mrO.page.searchInputClick=function(args){var searchInput=args.instance;if(mrO.isDefined(searchInput)){var sourceType=searchInput.settings["sourceType"];if(sourceType==="air"||sourceType==="charter"||sourceType==="hotel"){var locationString=searchInput.linkBase+"&"+searchInput.getRequestParametersString();if(searchInput.valid()){var searchOutput=mrO.page.searchOutputs[sourceType];if(mrO.isDefined(searchOutput)){if(mrO.page.debugging({sender:"mrO.page.searchInputClick"})){mrO.utils.writeToConsole("mrO.page.searchInputClick: I found a search output and will not redirect!");}
searchOutput.getResults();}
else{if(mrO.page.debugging({sender:"mrO.page.searchInputClick"})){mrO.utils.writeToConsole("mrO.page.searchInputClick: Redirecting to "+locationString);}
window.location.assign(locationString);}
return false;}else{return true;}}
if(mrO.page.debugging({sender:"mrO.page.searchInputClick"})){mrO.utils.writeToConsole("mrO.page.searchInputClick: Doing postback!");}
return true;}else{if(mrO.page.debugging({sender:"mrO.page.searchInputClick"})){mrO.utils.writeToConsole("mrO.page.searchInputClick: I can not find instance!");}
return true;}};mrO.page.searchInputClickIframe=function(args){var searchInput=args.instance;if(mrO.isDefined(searchInput)){var sourceType=searchInput.settings["sourceType"];if(sourceType==="package"){var locationString=searchInput.linkBase+"&"+searchInput.getRequestParametersString();if(searchInput.valid()){if(mrO.page.debugging({sender:"mrO.page.searchInputClick"})){mrO.utils.writeToConsole("mrO.page.searchInputClick: Redirecting to "+locationString);}
parent.location.href=locationString;return false;}
else{return true;}}
if(mrO.page.debugging({sender:"mrO.page.searchInputClickIframe"})){mrO.utils.writeToConsole("mrO.page.searchInputClickIframe: Doing postback!");}
return true;}else{if(mrO.page.debugging({sender:"mrO.page.searchInputClickIframe"})){mrO.utils.writeToConsole("mrO.page.searchInputClickIframe: I can not find instance!");}
return true;}};mrO.page.getFareRules=function(args){var radio1Obj=null;var radio2Obj=null;var intineraryId=null;var popupSettings=null;var radio1value=$("input:radio[name="+args.RadioButtonNameBase+"1]:checked").val();var radio2value=$("input:radio[name="+args.RadioButtonNameBase+"2]:checked").val();if(mrO.isDefined(args.IntineraryId)){intineraryId=args.IntineraryId;}
if(intineraryId==null){radio1Obj=JSON.parse("["+radio1value+"]");if(typeof(radio2value)!=='undefined'){radio2Obj=JSON.parse("["+radio2value+"]");}
if(radio1Obj!==null&&radio2Obj!==null){var itineraryIntersect=[];jQuery.each(radio1Obj,function(){if(jQuery.inArray(this.valueOf(),radio2Obj)>=0){itineraryIntersect.push(this);}});if(itineraryIntersect.length===1){intineraryId=itineraryIntersect[0];}}else if(radio1Obj!==null){intineraryId=radio1Obj[0];}}
if(typeof(args.PopupSettings)!=='undefined'&&args.PopupSettings!==null){popupSettings=args.PopupSettings;}
else{popupSettings="toolbar=0,resizable=1,menubar=0,location=0,scrollbars=1,width=500px, height=700";}
var returnFunc=function(req){fareRules.document.write(req);fareRules.document.close();};var fareRules=window.open('','FareRules',"'"+popupSettings+"'");fareRules.document.write("Loading flight rules...");fareRules.document.close();$.ajax({type:"POST",url:"AJAXWebservice.asmx/GetFareRules",data:"{'itineraryId': "+JSON.stringify(intineraryId)+"}",contentType:"application/json; charset=utf-8",dataType:"json",success:function(retstring){fareRules.document.write(retstring.d);fareRules.document.close();},error:function(e){fareRules.document.write("Couldn't get fare rules for flight");fareRules.document.close();}});return false;};mrO.page.step2click=function(args){var parameters={};parameters["top_itinerary"]=args.EncryptedSelectedItinerary;parameters["cluster_number"]=args.ClusterNumber;if(typeof(args.Itinerary)!=='undefined'&&args.Itinerary!==null){parameters["itinerary_id"]=args.Itinerary;}else{var radio1Obj=null;var radio2Obj=null;var radio1value=$("input:radio[name="+args.RadioButtonNameBase+"1]:checked").val();radio1Obj=mrO.utils.toObjectFromJSONString("["+radio1value+"]");var radio2value=$("input:radio[name="+args.RadioButtonNameBase+"2]:checked").val();if(typeof(radio2value)!=='undefined'){radio2Obj=mrO.utils.toObjectFromJSONString("["+radio2value+"]");}else{if(mrO.page.debugging({sender:'mrO.page.step2click'})){mrO.utils.writeToConsole("radio2value is undefined");}}
if(radio1Obj!==null&&radio2Obj!==null){var itineraryIntersect=[];jQuery.each(radio1Obj,function(){if(jQuery.inArray(this.valueOf(),radio2Obj)>=0){itineraryIntersect.push(this);}});if(itineraryIntersect.length===1){parameters["itinerary_id"]=itineraryIntersect[0];}}else if(radio1Obj!==null){parameters["itinerary_id"]=radio1Obj[0];}}
if(mrO.page.debugging({sender:'mrO.page.searchInputClick'})){mrO.utils.writeToConsole("selected itinerary: "+parameters["itinerary_id"]+" of Cluster: "+parameters["cluster_number"]+"\nTopItinerary:"+parameters["top_itinerary"]);}
if(typeof(parameters["itinerary_id"])!=='undefined'&&parameters["itinerary_id"]!==null){var parameterString=mrO.utils.getRequestParametersString(parameters);var locationString=mrO.page.settings.BypassPostBackOnAirResultsLinkBase+"&"+parameterString;if(mrO.page.debugging({sender:'mrO.page.step2click'})){alert("Read the console");}
window.location=locationString;return false;}
return true;};mrO.page.submitForm=function(elementId){var element=$('#'+elementId);if($(element).is(":input")){elementId=$(element).val();}
var formElement=$('#'+elementId);if(formElement.submit){formElement.submit();return false;}};mrO.page.submit=function(ele){if(this.submitLock()){var ptr=this;var resetFunc=function(){ptr.submitReset(ele);};if(ele.style.opacity!==null){ele.style.opacity=this.settings.submitButtonTransparency/100;}
if(ele.style.filter!==null){ele.style.filter="alpha(opacity="+this.settings.submitButtonTransparency+")";}
setTimeout(resetFunc,2000);return true;}else{return false;}};mrO.page.submitReset=function(ele){if(ele.style.opacity!==null){ele.style.opacity=1;}
if(ele.style.filter!==null){ele.style.filter="alpha(opacity=100)";}
this.submitting=false;};mrO.page.lockAndLoad=function(ele,styleClass){var submitButton=ele;try{var parentEle=submitButton.parentNode;if(this.submitLock()){var divElement=document.createElement("div");divElement.id=ele+"container";if(styleClass===null){divElement.style.backgroundImage="url(/Files/0/progress.gif)";divElement.style.backgroundRepeat="no-repeat";divElement.style.backgroundPosition="center";}else{divElement.className=styleClass;}
divElement.style.width=submitButton.offsetWidth+"px";parentEle.replaceChild(divElement,ele);if(submitButton.style.opacity!==null){submitButton.style.opacity=this.settings.submitButtonTransparency/100;}
if(submitButton.style.filter!==null){submitButton.style.filter="alpha(opacity="+this.settings.submitButtonTransparency+")";}
divElement.appendChild(submitButton);return true;}else{return false;}}catch(e){submitButton.style.visibility='hidden';return true;}};mrO.page.maxLength=function(textArea,maxChars){if(typeof(textArea)==='string'){textArea=document.getElementById(textArea);}
if(textArea!==null){if(textArea.value.length>maxChars){textArea.value=textArea.value.substring(0,maxChars);}}
return true;};mrO.page.debugging=function(args){if(this.isDebuggingBool===true){return true;}
var hostname=mrO.utils.getServerHostname();var requestParams=mrO.page.getRequestParametersFromURL();if(requestParams!=null&&requestParams["jsdebug"]!=null&&requestParams["jsdebug"]=="true"){this.isDebuggingBool=true;return true;}else if(hostname==="localhost"){this.isDebuggingBool=true;return true;}else{return false;}};mrO.page.getRequestParametersFromURL=function(param){if(mrO.isUndefined(this.requestParameters)){this.requestParameters=mrO.utils.getRequestParametersFromUrlString(document.location.href);}
if(param!=null){return this.requestParameters[param]||null;}else{return this.requestParameters||null;}};
