/*var loadedJS = new Array() ; function include(script, cacheable, singleLoad) { var i ; var found = false ; for (i=0;i -1) { script += '&'; } else { script += '?'; } script += 'rand=' + Math.random(); } eltScript.setAttribute("src", script); document.getElementsByTagName('head')[0].appendChild(eltScript); } } */ var clickedmainmenu = false; function include(script, cacheable) { eltScript = document.createElement("script"); eltScript.setAttribute("type", "text/javascript"); if (cacheable === false) { if(script.indexOf('?') > -1) { script += '&'; } else { script += '?'; } script += 'rand=' + Math.random(); } eltScript.setAttribute("src", script); document.getElementsByTagName('head')[0].appendChild(eltScript); } function isNull(a) { return typeof a == 'object' && !a; } function isset(a) { return !isNull(a) && a !=undefined ; } function trim(str, chars) { return ltrim(rtrim(str, chars), chars); } function ltrim(str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("^[" + chars + "]+", "g"), ""); } function rtrim(str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("[" + chars + "]+$", "g"), ""); } function strpos (haystack, needle, offset) { var i = (haystack+'').indexOf(needle, (offset || 0)); return i === -1 ? false : i; } function urlencode(str) { return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40'); } var commandCue = Array() ; function neatValue(value) { if (isNull(value) || (value=="undefined") || (value=="")) { return "null" ; } else { return value ; } } function neatValueNotNull(value) { if (isNull(value) || (value=="undefined")) { return "" ; } else { return value ; } } function stripNonAlphanumerics( subject ) { subject = subject.replace(/[^A-Za-z0-9 ]+/g, ''); return subject.replace(' ', ''); } /* MOVED TO CMS.js function loadCSSfile(filename){ // this needs to be made better. filename = cmsSiteURLS[getSelectedSite()]+filename; var fileref=document.createElement("link") fileref.setAttribute("rel", "stylesheet") fileref.setAttribute("type", "text/css") fileref.setAttribute("href", filename) document.getElementsByTagName("head")[0].appendChild(fileref) } */ function cueXMLHTTPPost(service, command, params, callBack) { var cuecount = commandCue.length ; var commandArray = Array() commandArray['service'] = service ; commandArray['command'] = command ; commandArray['callBack'] = callBack ; commandArray['params'] = params ; commandCue[cuecount] = commandArray ; if (cuecount ==0) { // because the cue was empty, kick the cue in to action setTimeout("postCue()", 10) ; } } function cueHTMLHTTPGet(service, command, callBack) { var cuecount = commandCue.length ; var commandArray = Array() commandArray['service'] = service ; commandArray['command'] = command ; commandArray['callBack'] = callBack ; commandArray['params'] = '' ; commandCue[cuecount] = commandArray ; if (cuecount ==0) { // because the cue was empty, kick the cue in to action setTimeout("postCue()", 10) ; } } function postCue() { var cuecount = commandCue.length ; if (cuecount > 0) { var command = commandCue.shift() ; xmlhttpPost(command['service'], command['command'], command['params'], command['callBack']) ; } } function parseXML(xmlText) { var xmlDoc; // code for IE if (window.ActiveXObject) { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(xmlText) ; } // code for Mozilla, Firefox, Opera, etc. else { var parser=new DOMParser(); var xmlDoc=parser.parseFromString(xmlText,"text/xml"); } return xmlDoc ; } function appendElement(parentElement, newElement) { parentElement.appendChild(newElement); return newElement ; } function addElement(parentElement, ElementType, newElementId) { var newElement = document.createElement(ElementType); var divIdName = newElementId ; newElement.setAttribute('id',divIdName); newElement.setAttribute('name',divIdName); parentElement.appendChild(newElement); return newElement ; } function addElementById(parentElement, ElementType, newElementId) { var pe = document.getElementById(parentElement); return addElement(pe, ElementType, newElementId) ; } function removeElement(parentElement, elementName) { var d = document.getElementById(parentElement); var olddiv = document.getElementById(elementName); d.removeChild(olddiv); } function removeXMLElement(xmldoc,psd_element, event_id) { /*var d = xmldoc.getElementById(parentElement); var olddiv = xmldoc.getElementById(elementName); d.removeChild(olddiv);*/ // var s = new XMLSerializer(); // alert(s.serializeToString(xmlDoc)); var theXML = xmlDoc.childNodes[0] ; for (var i=0; i" ; // code for IE if (window.ActiveXObject){ xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(xmlText) ; } // code for Mozilla, Firefox, Opera, etc. else { browser='ff' ; var xmlDoc=document.implementation.createDocument("","",null); } var formXML = xmlDoc.createElement("form"); setAttributeNode(xmlDoc, formXML, "name", formName) ; xmlDoc.appendChild(formXML) ; var siteSelect ; var siteName ; siteName = '' ; siteSelect = document.getElementById('cms_site_select') ; if (isset(siteSelect)) { siteName = siteSelect.options[siteSelect.selectedIndex].value ; var fieldValue = xmlDoc.createElement("field"); var valueVar = xmlDoc.createElement("value"); var fieldName = 'siteOverride' ; setAttributeNode(xmlDoc, fieldValue, "name", fieldName) ; valueVar.appendChild(xmlDoc.createTextNode(neatValueNotNull(utf8Encode(siteName), false))) ; fieldValue.appendChild(valueVar) ; formXML.appendChild(fieldValue) ; } var languageSelect = document.getElementById('cms_language_select') ; if (isset(languageSelect)) { var languageRef = ""; try{ languageRef = languageSelect.options[languageSelect.selectedIndex].value }catch(err){ languageRef = ""; } var fieldValue = xmlDoc.createElement("field"); var valueVar = xmlDoc.createElement("value"); var fieldName = 'cms_language' ; setAttributeNode(xmlDoc, fieldValue, "name", fieldName) ; valueVar.appendChild(xmlDoc.createTextNode(neatValueNotNull(utf8Encode(languageRef), false))) ; fieldValue.appendChild(valueVar) ; formXML.appendChild(fieldValue) ; //alert(languageRef) ; } var fieldCount = whatForm.length - 1 ; var i ; var controlType ; var ajaxParams = "" ; var value ; var skipRadio ; var checked ; for (i=0;i<=fieldCount;i++) { temp_form = whatForm[i]; // alert($(temp_form).attr('class'));//ckeditor controlType = whatForm[i].type ; skipRadio = false ; value = '' ; checked = '' ; if ((controlType != "button") && (controlType != "submit") && (controlType != undefined&&controlType != null&&controlType != ''&&controlType != 'undefined')) { if (whatForm[i].name != "") { if (controlType == "checkbox") { if (whatForm[i].checked) { checked = 'true' ; value = whatForm[i].value ; } else { checked = 'false' ; value = whatForm[i].value ; } } else if (controlType == "radio") { if (whatForm[i].checked) { value = whatForm[i].value ; } else { skipRadio = true ; } } else if (controlType == "select-multiple") { if (whatForm[i].options.length > 0) { value = '' ; for (var j= 0; j < whatForm[i].options.length; j++) { if (whatForm[i].options[j].selected) { if (value != '') { value = value + ',' ; } value = value + whatForm[i].options[j].value ; } } } else { value = '' ; } } else if ((controlType == "select") || (controlType == "select-one")) { if (whatForm[i].options.length > 0) { value = whatForm[i].options[whatForm[i].selectedIndex].value ; } else { value = '' ; } } else if(whatForm[i].value != undefined) { value = whatForm[i].value ; } //value = value.replace("’", "ʼ"); value = value.replace("’", "'"); if (!skipRadio) { var fieldValue = xmlDoc.createElement("field"); var valueVar = xmlDoc.createElement("value"); var fieldName = whatForm[i].name ; if ((fieldName != 'siteOverride') && (fieldName != 'cms_language')) { if (fieldName == '') { fieldName = whatForm[i].id ; } if($(temp_form).attr('class').match('ckeditor')){ valueVar.appendChild(xmlDoc.createCDATASection(neatValueNotNull(utf8Encode(value), false))) ; }else{ valueVar.appendChild(xmlDoc.createCDATASection(neatValueNotNull(utf8Encode(value)))); } setAttributeNode(xmlDoc, fieldValue, "name", fieldName) ; if (checked != '') { setAttributeNode(xmlDoc, fieldValue, "checked", checked) ; } fieldValue.appendChild(valueVar) ; formXML.appendChild(fieldValue) ; } } } } } //alert(xmlDoc); cueXMLHTTPPost(service, action, xmlDoc, callBack) ; return false ; } function ajaxPostValuesAsXML(values, service, action, callBack) { var browser='ie' ; var xmlDoc; var xmlText ; xmlText = "" ; // code for IE if (window.ActiveXObject){ xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(xmlText) ; } // code for Mozilla, Firefox, Opera, etc. else { browser='ff' ; var xmlDoc=document.implementation.createDocument("","",null); } var formXML = xmlDoc.createElement("form"); setAttributeNode(xmlDoc, formXML, "name", 'values') ; xmlDoc.appendChild(formXML) ; var fieldCount = values.length - 1 ; var i ; var ajaxParams = "" ; for (i=0;i<=fieldCount;i++) { var fieldValue = xmlDoc.createElement("field"); var valueVar = xmlDoc.createElement("value"); var val = ''+values[i]['value'] ; valueVar.appendChild(xmlDoc.createCDATASection(neatValueNotNull(utf8Encode(val), false))); var name ; name = values[i]['name'] ; setAttributeNode(xmlDoc, fieldValue, "name", name) ; fieldValue.appendChild(valueVar) ; formXML.appendChild(fieldValue) ; } // alert(xmlDoc); cueXMLHTTPPost(service, action, xmlDoc, callBack) ; return false ; } function isDebug() { var result = false ; var debug = url_get('debug') ; if (debug == 'motortrak') { result = true ; } return result ; } // function to show the result of the ajax function debugAjaxOutput(responceText) { var debug = url_get('debug') ; if (debug == 'motortrak') { if(document.getElementById('debug_text')){ document.getElementById('debug_text').style.display='block' ; document.getElementById('debug_text').value = unescape(responceText); } } } function debug_output(text) { debugAjaxOutput(text) ; } function convert_from_safe_chars_lang(str){ str = str.replace(/&#([0-9]*);/gm,function(psd_str){var temp_str = psd_str.match(/([0-9]*);/m);return String.fromCharCode(temp_str[1])}); return str; } function utf8Encode(str) { return encodeURIComponent(str); } function getPageElement(page, div, callBack) { jQuery("#"+div).fadeOut(); cueHTMLHTTPGet(page, 'c', callBack) ; } function getPageHTML(page, callBack) { var s = callBack+"ZZZ"; // when not set at all, JS doesn't really get it if (isNull(s) || (s=="undefinedZZZ") || (s=="")) { callBack='pageLoader'; } else { } var stringArray ; stringArray = page.split('/') ; var method ; method = stringArray[0] ; var action = '' ; for (var i =1;i 0 ; for (i=0;i'+errors[i].childNodes[0].nodeValue+''; } } } return returnVal ; } var populateFormCue ; populateFormCue = Array() ; // this is used to track the order forms are populated. // In most cases it will have just one entry, but in the event some // one hits a button more then once, or multiple requests are cued // it will allow the call back to process the results to teh correct form function ajaxPopulateForm(formName, service, action, params, callback) { var formListCount = populateFormCue.length ; var cueForm = Array() ; cueForm['name'] = formName ; cueForm['callback'] = callback ; populateFormCue[formListCount] = cueForm ; ajaxPostValuesAsXML(params, service, action, 'ajaxPopulateFormCallBack') ; } function ajaxPopulateFormCallBack(responce) { //alert(unescape(responce)) ; var formName = '' ; var callBack = '' ; var cuedDetails ; if (populateFormCue.length > 0) { cuedDetails = populateFormCue.shift() ; formName = cuedDetails['name'] ; callBack = cuedDetails['callback'] ; var doc = parseXML(unescape(responce)) ; var firstNode = doc.firstChild.firstChild.nodeName ; // the name of the 'object' var dataNodes = doc.firstChild.firstChild.childNodes ; // assumes that the xml returned is 0) { var stylesArray ; stylesArray = styles.split('>') ; var i ; for (i=0;i < stylesArray.length;i++) { var style = trim(stylesArray[i]) ; if (style.length > 0) { style = style + '>' ; var fileNameStart = (style+'').indexOf('href="', 0)+6; var fileNameEnd = (style+'').indexOf('/>', 0); if (fileNameEnd == -1) { var fileNameEnd = (style+'').indexOf('">', 0); } style = style.substr(fileNameStart, fileNameEnd - fileNameStart ); var lastQuote = (style+'').indexOf('"', 0); if (lastQuote != -1) { style = style.substr(0, lastQuote); } loadCSSfile(style) ; } } } } } if ((styles != null) && (styles != undefined)) { styles = '' ; } script = xmlDoc.getElementsByTagName('script'); if (script != undefined) { script = script.item(0) ; if (script != undefined) { if (ie) { script = script.firstChild ; if (script != undefined) { script = script.data; } } else { script = script.childNodes ; if (script != undefined) { if(script.item(1) != null){ script = script.item(1); if (script != undefined) { script = script.data ; } }else{ script = script.item(0); if (script != undefined) { script = script.data ; } } } } } } body = xmlDoc.getElementsByTagName('body'); var target ; target = '' ; if (body != undefined) { body = body.item(0) ; if (body != undefined) { target = body.getAttribute('target'); if (ie) { body = body.firstChild ; if (body != undefined) { body = body.data; } } else { body = body.childNodes ; if (body != undefined) { body = body.item(1); if (body != undefined) { // body = xmlDoc.getElementsByTagName('body').item(0).childNodes.item(1).data ; body = body.data ; } } } } } var res ; res = Array() ; res['window'] = window ; res['url'] = url ; res['pageid'] = pageId ; res['body'] = body ; res['script'] = script ; res['conversationid'] = convId ; res['windowWidth'] = windowWidth ; res['windowHeight'] = windowHeight ; res['target'] = target ; res['title'] = title ; return res ; } var global_page_properties = false; var global_ref_object = false; function CheckDisablePageEdit(psd_value){ var rtn; if(psd_value == 'yes'){ rtn = DisablePageEdit(); } return rtn; } function DisablePageEdit(){ var rtn = false; $('#cms_edit_page_properties').ready(function(){ // if($(this).text().toLowerCase() == 'page properties'){ alert(i); if(!global_page_properties){ global_page_properties = $('#cms_edit_page_properties').attr('onclick'); global_ref_object = $('#cms_edit_page_properties'); } //alert($('#cms_edit_page_properties').attr('id')); $('#cms_edit_page_properties').removeAttr('onclick'); $('#cms_edit_page_properties').click(function(){return false;}); $('#cms_edit_page_properties').addClass('disabled_admin_btn'); }); return rtn; } function pageLoader(pageHTML) { // alert(unescape(pageHTML)) ; pageResponceProcessor(pageHTML, "cms_editor_popup_content") ; jQuery("#cms_editor_popup").fadeIn(); } function getElementValue(Element) { if (ie) { Element = Element.firstChild ; if (Element != undefined) { Element = Element.data; } } else { Element = Element.childNodes ; if (Element != undefined) { Element = Element.item(0); if (Element != undefined) { Element = Element.data; } } } if (Element == undefined) { Element = '' ; } return Element ; } function getCDataElementValue(Element) { if (ie) { Element = Element.firstChild ; if (Element != undefined) { Element = Element.data; } } else { Element = Element.childNodes ; if (Element != undefined) { Element = Element.item(0); if (Element != undefined) { Element = Element.data; } } } if (Element == undefined) { Element = '' ; } return Element ; } // basic browser detection because I need to know if its early versions of safari. // Versions of safari prior to version 3 do not support xml attributes. So to make things work, // I will need to put in a work around. Its nasty, I don't like it but what can you do? var d, dom, ie, ie4, ie5x, moz, mac, win, lin, old, ie5mac, ie5xwin, op, saf; d = document; n = navigator; na = n.appVersion; nua = n.userAgent; win = ( na.indexOf( 'Win' ) != -1 ); mac = ( na.indexOf( 'Mac' ) != -1 ); lin = ( nua.indexOf( 'Linux' ) != -1 ); if ( !d.layers ){ dom = ( d.getElementById ); op = ( nua.indexOf( 'Opera' ) != -1 ); konq = ( nua.indexOf( 'Konqueror' ) != -1 ); saf = ( nua.indexOf( 'Safari' ) != -1 ); moz = ( nua.indexOf( 'Gecko' ) != -1 && !saf && !konq); ie = ( d.all && !op ); ie4 = ( ie && !dom ); /* ie5x tests only for functionality. ( dom||ie5x ) would be default settings. Opera will register true in this test if set to identify as IE 5 */ ie5x = ( d.all && dom ); ie5mac = ( mac && ie5x ); ie5xwin = ( win && ie5x ); } function htmlspecialchars_decode (string, quote_style) { // http://kevin.vanzonneveld.net // + original by: Mirek Slugen // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Mateusz "loonquawl" Zalega // + input by: ReverseSyntax // + input by: Slawomir Kaniecki // + input by: Scott Cariss // + input by: Francois // + bugfixed by: Onno Marsman // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Brett Zamir (http://brett-zamir.me) // + input by: Ratheous // + input by: Mailfaker (http://www.weedem.fr/) // + reimplemented by: Brett Zamir (http://brett-zamir.me) // + bugfixed by: Brett Zamir (http://brett-zamir.me) // * example 1: htmlspecialchars_decode("

this -> "

", 'ENT_NOQUOTES'); // * returns 1: '

this -> "

' // * example 2: htmlspecialchars_decode("&quot;"); // * returns 2: '"' var optTemp = 0, i = 0, noquotes= false; if (typeof quote_style === 'undefined') { quote_style = 2; } string = string.toString().replace(/</g, '<').replace(/>/g, '>'); var OPTS = { 'ENT_NOQUOTES': 0, 'ENT_HTML_QUOTE_SINGLE' : 1, 'ENT_HTML_QUOTE_DOUBLE' : 2, 'ENT_COMPAT': 2, 'ENT_QUOTES': 3, 'ENT_IGNORE' : 4 }; if (quote_style === 0) { noquotes = true; } if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags quote_style = [].concat(quote_style); for (i=0; i < quote_style.length; i++) { // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4 if (OPTS[quote_style[i]] === 0) { noquotes = true; } else if (OPTS[quote_style[i]]) { optTemp = optTemp | OPTS[quote_style[i]]; } } quote_style = optTemp; } if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) { string = string.replace(/�*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should // string = string.replace(/'|�*27;/g, "'"); // This would also be useful here, but not a part of PHP } if (!noquotes) { string = string.replace(/"/g, '"'); } // Put this in last place to avoid escape being double-decoded string = string.replace(/&/g, '&'); return string; } function is_array(input){ return typeof(input)=='object'&&(input instanceof Array); } function in_array (needle, haystack, argStrict) { var key = '', strict = !!argStrict; if (strict) { for (key in haystack) { if (haystack[key] === needle) { return true; } } } else { for (key in haystack) { if (haystack[key] == needle) { return true; } } } return false; }