function show_picture(script, src, alt, width, height) { // alt must be escaped or empty because escape(str) doesn't work with russian symbols if ( (script.substring(0,7).toLowerCase()) != "http://" && (script.substring(0,8).toLowerCase() != "https://" ) ){ script = frontBaseHref + script; } var w_width = 40 + parseInt(width); var w_height = 100 + parseInt(height); if (w_height > window.screen.availHeight) w_height = window.screen.availHeight; if (w_width > window.screen.availWidth) w_width = window.screen.availWidth; src = encodeURIComponent(src); src = src.replace(/\//g, '%2F'); window.open(script+"?src=" + src + "&alt=" + alt + "&width="+width + "&height="+height, "pic", "resizable=yes, status=yes, scrollbars=yes, width=" + w_width + ", height=" + w_height); //return false; } function show_details(script) { if ( (script.substring(0,7).toLowerCase()) != "http://" && (script.substring(0,8).toLowerCase() != "https://" ) ){ script = frontBaseHref + script; } var w_width = 200; var w_height = 250; if (w_height > window.screen.availHeight) w_height = window.screen.availHeight; if (w_width > window.screen.availWidth) w_width = window.screen.availWidth; window.open(script, "pic", "resizable=yes, status=yes, scrollbars=yes, width=" + w_width + ", height=" + w_height); //return false; } function none(){ return false; } function isEmail(string) { // if (string.search(/^(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+(;|,|$))+$/) != -1) if (string.search(/^(\w+[\w.-]*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+(;|,|$))+$/) != -1) return true; else return false; } // // following functions will be deleted later // function collect_link(cform){ var vlink = ''; var first = 1; for(var i=0; i= 0){ content = content.substr(cartStatusPos); amiSession.loadVariables(); var aVarNames = content.split('|'); updateCartBlock(aVarNames[1], aVarNames[2]); var actionStatus = ''; for(i = 3; i < aVarNames.length; i++){ actionStatus += (i > 3 ? '|' : '') + aVarNames[i]; } if(typeof(onAddedToCartMessage) == 'function'){ onAddedToCartMessage(actionStatus); }else{ alert(actionStatus); } } } function updateCartBlock(itemCountCookieName, totalCookieName){ var cartItemCount = amiSession.get(itemCountCookieName); if(document.getElementById('idEshopCartIsNotEmpty')){ document.getElementById('idEshopCartIsNotEmpty').style.display = (cartItemCount == '' || cartItemCount == 0 ? 'none' : 'block'); } if(document.getElementById('idEshopCartIsEmpty')){ document.getElementById('idEshopCartIsEmpty').style.display = (cartItemCount == '' || cartItemCount == 0 ? 'block' : 'none'); } if(cartItemCount != ''){ if(document.getElementById(itemCountCookieName)){ document.getElementById(itemCountCookieName).innerHTML = cartItemCount; } if(document.getElementById(totalCookieName)){ document.getElementById(totalCookieName).innerHTML = amiSession.get(totalCookieName); } if(document.getElementById('eshopCartEmpty')){ document.getElementById('eshopCartEmpty').style.display = (cartItemCount > 0) ? 'inline' : 'none'; } } if(typeof(onUpdateCartBlock) == 'function'){ onUpdateCartBlock(cartItemCount, amiSession.get(totalCookieName)); } } /* ADVERTISING BLOCK */ var advCurTmStamp = new Date(); document.usedAdvData = ""; var isInnerHtmlSupported = -1; var shownAdvPlaces = ''; var shownAdvPlacesCnt = 0; var advReferrer = '' var advPlaceCnts = new Array(); if(document.referrer) advReferrer = document.referrer; function processShownAdvPlaces(shownAdvPlaces){ counter = 0; pos = -1; res = ""; while((pos = shownAdvPlaces.indexOf(';', pos+1)) >= 0){ if((pos1 = shownAdvPlaces.indexOf(';', pos+1)) < 0) pos1 = shownAdvPlaces.length; if(pos1-pos-1 > 0){ curAdvPlace = shownAdvPlaces.substr(pos+1, pos1-pos-1); if((cpos = curAdvPlace.indexOf('_')) >= 0){ counter = curAdvPlace.substr(cpos+1)-1; curAdvPlace = curAdvPlace.substr(0, cpos); } advPlaceCnts[curAdvPlace] = ++counter; res += ';'+curAdvPlace+"_"+counter; } } if(res.length > 0) res += ';'; return res; } function showAdvPlace(idPlace, viewURL){ if(isInnerHtmlSupported == -1){ if(document.body.innerHTML) isInnerHtmlSupported = 1; else isInnerHtmlSupported = 0; } // After the document is loaded (new scheme) if(isInnerHtmlSupported == 1){ shownAdvPlacesCnt ++; document.write(''); shownAdvPlaces += (shownAdvPlaces == '' ? ';' : '')+idPlace+';'; // Old scheme - inline method }else{ if (!document.usedAdvData) document.usedAdvData = ''; rndseed = new String(Math.random()); rndseed = rndseed.substring(2,11); document.write ("<" + "script language='JavaScript' type='text/javascript' src='"+viewURL+"aproc.php?action=view&rs="+advCurTmStamp.getTime()+rndseed+"&place="+idPlace+"&used="+document.usedAdvData+"&curl="+encodeURIComponent(viewURL)+"&referer="+encodeURIComponent(advReferrer)+"'><"+"/script>"); } } function showAdvBanner(id, content){ if(document.usedAdvData) document.usedAdvData += ','+id+','; else document.usedAdvData = ','+id+','; document.writeln(content); } function aLnkClick(lnkID){ var aLink = frontBaseHref+"aproc.php?action=lclick&id="+lnkID+"&page_url="+encodeURIComponent(document.location.href); advClick(aLink); } function advClick(clickURL){ rndseed = new String(Math.random()); rndseed = rndseed.substring(2,11); clickURL+="&rs="+advCurTmStamp.getTime()+rndseed; img = new Image(); img.src = clickURL; } var advPlacesContent = new Array(); var fillAdvPlaceWatcher = new Array(); function fillAdvPlace(idPlace, idCnt, placeContent){ if(advPlacesContent[idPlace+'_'+idCnt] == undefined) advPlacesContent[idPlace+'_'+idCnt] = placeContent; if(fillAdvPlaceWatcher[idPlace+'_'+idCnt] == undefined) fillAdvPlaceWatcher[idPlace+'_'+idCnt] = 0; if(document.getElementById && document.getElementById('advp_'+idPlace+'_'+idCnt) && document.getElementById('advp_'+idPlace+'_'+idCnt).innerHTML != undefined){ document.getElementById('advp_'+idPlace+'_'+idCnt).innerHTML = advPlacesContent[idPlace+'_'+idCnt]; }else{ fillAdvPlaceWatcher ++; if(fillAdvPlaceWatcher < 1000) setTimeout("fillAdvPlace('"+idPlace+"', '"+idCnt+"');", 100); } } /* MODULE ADVERTISEMENT PART [not in use] */ /* // String that contains module show data var modAdvIdsArr = new Array(); // Set item view function setView(modName, bodyType, id, idPlace){ if(isNaN(idPlace)) idPlace = 0; var isFound = 0; for(var i = 0; i < modAdvIdsArr.length; i++){ if(modAdvIdsArr[i][0] == modName){ modAdvIdsArr[i][1] += '|'+bodyType+id+','+idPlace; isFound = 1; break; } } if(!isFound) modAdvIdsArr[modAdvIdsArr.length] = new Array(modName, bodyType+id+','+idPlace); } // Process gathered adv IDs function processViewAdvIds(){ var retStr = ''; for(var i = 0; i < modAdvIdsArr.length; i++) retStr += (retStr != '' ? ';' : '')+modAdvIdsArr[i][0]+'='+modAdvIdsArr[i][1]; alert(retStr); return retStr; } */ // Returns cookie value function getPlainCookie(name){ // cookies are separated by semicolons var aCookie = document.cookie.split("; "); var value = ""; for (var i=0; i < aCookie.length; i++){ // a name/value pair (a crumb) is separated by an equal sign var aCrumb = aCookie[i].split("="); if (name == aCrumb[0]){ if(aCrumb[1] === undefined) { value = null; }else{ value = aCrumb[1]; } return value; } } // a cookie with the requested name does not exist return null; } function getCookie(name, useDecodeURIComponent){ var val = getPlainCookie(name); if(val != null){ if(useDecodeURIComponent){ val = decodeURIComponent(val); val = val.replace(/\+/g, ' '); }else{ val = decodeURIComponent(val); } } return val; } /* function updateCookieExpireTime(name, minutes){ var oDate = new Date(); if (typeof(minutes) != "undefined") oDate.setMinutes(oDate.getMinutes() + minutes); var val = getCookie(name); if(val != null){ _setCookie(name, val, "/", oDate); } } */ // {{{ window.onLoad events queue implementation var onLoadEvents = new Array (); var previousOnLoadEvent; function addOnLoadEvent(event) { onLoadEvents[onLoadEvents.length] = event; } function runOnLoadEventsQueue() { if (previousOnLoadEvent) { previousOnLoadEvent(); } for (var i = 0 ; i < onLoadEvents.length; i++) { onLoadEvents[i](); } } function savePreviousOnLoadEvent() { previousOnLoadEvent = window.onload; window.onload = runOnLoadEventsQueue; } // }}} function setCaptchaMD5Hash(sid) { var cookie = getCookie('captcha_' + sid); if (cookie != null && cookie.length) { clearInterval(eval("intervalId_" + sid)); eval("captcha_" + sid + " = cookie;"); var path = null; var domain = null; if (location) { domain = location.host; path = frontBaseHref.replace(/^\w+\:\/\/[^\/]+/, ''); } delCookie('captcha_' + sid, path, domain); } } if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(val, fromIndex) { if (typeof(fromIndex) != 'number') { fromIndex = 0; } for (var index = fromIndex,len = this.length; index < len; index++) { if (this[index] == val) { return index; } } return -1; } } if (!Array.prototype.splice) { Array.prototype._splice = function(start) { if (start >= this.length) { return; } return this.slice(start); } Array.prototype._splice = function(start, deleteCount) { if (start >= this.length) { return; } return this.slice(0, start-1).concat(this.slice(start + deleteCount)); } } function cloneArray(source) { var destination = new Array(); for (var i = 0 ; i < source.length ; i++) { if (!(typeof(source[i]) == 'undefined')) { destination[i] = source[i]; } } return destination; } /* products comparison */ var mComparisonList = new Array (), mComparisonURL = ''; function compare(key) { if (compareProducts.indexOf(key) >= 0) { alert(compareInComparisonAlready); return false; } if (mComparisonList.length && !confirm(compareAddSelected)) { return false; } if (compareProducts.length == compareMaxQuantity) { alert(compareMaxMessage); return false; } if (mComparisonList.indexOf(key) < 0) { mComparisonList.push(key); } // check for different datasets if (compareDisallowDifferentDatasets && compareProducts.length > 0) { var datasetId = compareDatasetId; var _mComparisonList = cloneArray(mComparisonList); for (var i = 0, qty = _mComparisonList.length ; i < qty ; i++) { var p = _mComparisonList[i].split('-'); // p[2] is containing datasetId now if (!compareDatasetId) { compareDatasetId = p[2]; } if (compareDatasetId != p[2]) { if (!confirm(compareConfirmOtherDataset)) { return false; } break; } } } return mSubmitAddToCompare(); } function compareClear() { if (confirm(compareConfirmListClearing)) { document.location = location.pathname + '?action=compareClear'; } return false; } function mCompare(oCheckbox) { var key = oCheckbox.value; if (oCheckbox.checked) { // exclude duplicates if (compareProducts.indexOf(key) >= 0) { alert(compareInComparisonAlready); oCheckbox.checked = false; return false; } // check for max quantity of products to compare if (compareProducts.length == compareMaxQuantity) { alert(compareMaxMessage); oCheckbox.checked = false; return false; } // check for different datasets if (compareDisallowDifferentDatasets) { var p = key.split('-'); if ((compareProducts.length + mComparisonList.length) > 0 && p[2] != copmpareLastDatasetId && !confirm(compareConfirmOtherDataset)) { oCheckbox.checked = false; return false; } copmpareLastDatasetId = p[2]; // uncheck checked products having other dataset var _mComparisonList = cloneArray(mComparisonList); for (var i = 0, qty = _mComparisonList.length ; i < qty ; i++) { var p = _mComparisonList[i].split('-'); if (p[2] != copmpareLastDatasetId) { var o = document.getElementById('cmp_' + _mComparisonList[i]); o.checked = false; mCompare(o); } } // count real number of products to comapere after adding var _compareProducts = cloneArray(compareProducts); for (var i = 0, qty = compareProducts.length ; i < qty ; i++) { var p = compareProducts[i].split('-'); if (p[2] != copmpareLastDatasetId) { var index = _compareProducts.indexOf(compareProducts[i]); if (Array.prototype.splice) { _compareProducts.splice(index, 1); } else { _compareProducts = mComparisonList._splice(index, 1); } } } // check for max quantity of products to compare after manipulations if (_compareProducts.length + mComparisonList.length >= compareMaxQuantity) { alert(compareMaxMessage); oCheckbox.checked = false; return false; } } mComparisonList.push(key); } else { var index = mComparisonList.indexOf(key); if (index > -1) { if (Array.prototype.splice) { mComparisonList.splice(index, 1); } else { mComparisonList = mComparisonList._splice(index, 1); } copmpareLastDatasetId = compareDatasetId; } } } function mSubmitAddToCompare() { var qty = mComparisonList.length; if (!qty) { alert(compareListIsEmpty); return false; } var _mComparisonList = cloneArray(mComparisonList); // check for added already products and exclude its from mComparisonList for (var i = 0 ; i < qty ; i++) { var index = compareProducts.indexOf(_mComparisonList[i]); if (index >= 0) { // exclude duplicate product if (Array.prototype.splice) { mComparisonList.splice(_mComparisonList.indexOf(mComparisonList[i]), 1); } else { mComparisonList = mComparisonList._splice(_mComparisonList.indexOf(mComparisonList[i]), 1); } } } document.location = location.pathname + '?action=compare&products=' + _mComparisonList.join(';'); return false; } function mCompareSelected(url) { if (mComparisonList.length < 2) { if (mComparisonList.length < 1 && compareProducts.length > 1) { window.open(frontBaseHref + url + '?p=' + compareProducts.join(';') + '&h=&v=all&lay_id=100'); return false; } alert(compareListInsufficient); return false; } if (compareProducts.length && !confirm(compareConfirmPreviousClearing)) { return false; } window.open(frontBaseHref + url + '?p=' + mComparisonList.join(';') + '&h=&v=all&lay_id=100'); return false; } /* /products comparison */ function getXPos(elem){ x = 0; do { x += elem.offsetLeft; } while((elem = elem.offsetParent) != null); return x; } function getYPos(elem){ y = 0; do { y += elem.offsetTop; } while((elem = elem.offsetParent) != null); return y; } var calendarBlock; var calendarDateFieldName; function getCalendar(in_dateField, lang, dateFormat, divIdPrefix){ var elevPrefix = typeof(divIdPrefix) == 'undefined' ? '' : divIdPrefix; calendarTarget = in_dateField; calendarBlock = document.getElementById(elevPrefix + "calendar_block"); if(calendarBlock && (calendarBlock.style.display!="block" || (in_dateField.form.name + in_dateField.name!=calendarDateFieldName))){ calendarDateFieldName = in_dateField.form.name + in_dateField.name; cLeft = getXPos(calendarTarget)+calendarTarget.offsetWidth; cTop = getYPos(calendarTarget)+calendarTarget.offsetHeight; var dconfAddon = ''; if(typeof(dateFormat) != 'undefined' && dateFormat != ''){ dconfAddon = '&date_format='+dateFormat; } document.getElementById(elevPrefix + "calendar_block_frm").src = "calendar.php?v=2&lang="+lang+dconfAddon; calendarBlock.style.display="block"; var correctLeft = cLeft + calendarBlock.offsetWidth - document.body.scrollLeft - document.body.clientWidth; var correctTop = cTop + calendarBlock.offsetHeight - document.body.scrollTop - document.body.clientHeight; calendarBlock.style.left = cLeft - ((correctLeft > 0)?correctLeft:0); calendarBlock.style.top = cTop - ((correctTop > 0)?correctTop:0); document.getElementById(elevPrefix + "calendar_block_frm").contentWindow.document.body.focus(); }else if(calendarBlock){ calendarBlock.style.display="none"; } } function replaceDateTitle(objId){ var objObj = document.getElementById(objId); if(objObj){ var curDate = objObj.innerHTML; var rxToday = new RegExp(DATE_CONVERTION[2].replace(/\./g, "\\.")); var rxYesterday = new RegExp(DATE_CONVERTION[3].replace(/\./g, "\\.")); curDate = curDate.replace(rxToday, DATE_CONVERTION[0]); curDate = curDate.replace(rxYesterday, DATE_CONVERTION[1]); objObj.innerHTML = curDate; } } /* Пример использования календаря
дата:
*/ function saveURLHistory(){ var uh_prev_mod = getCookie('uh_prev_mod'); var uh_prev_url = getCookie('uh_prev_url'); var uh_curr_mod = getCookie('uh_curr_mod'); var uh_curr_url = getCookie('uh_curr_url'); delCookie('uh_prev_mod', "/"); delCookie('uh_prev_url', "/"); delCookie('uh_curr_mod', "/"); delCookie('uh_curr_url', "/"); if(uh_curr_mod == null){ setCookie('uh_prev_mod', active_module, "/"); setCookie('uh_prev_url', active_module_link, "/"); setCookie('uh_curr_mod', active_module, "/"); setCookie('uh_curr_url', active_module_link, "/"); }else if(uh_curr_mod != active_module){ setCookie('uh_prev_mod', uh_curr_mod, "/"); setCookie('uh_prev_url', uh_curr_url, "/"); setCookie('uh_curr_mod', active_module, "/"); setCookie('uh_curr_url', active_module_link, "/"); }else{ setCookie('uh_prev_mod', uh_prev_mod, "/"); setCookie('uh_prev_url', uh_prev_url, "/"); setCookie('uh_curr_mod', active_module, "/"); setCookie('uh_curr_url', active_module_link, "/"); } } saveURLHistory(); function amiFrontCommonClass(){ this.serialize = function(oData){ var result = ''; if(typeof(oData) == "object"){ if(oData instanceof Array){ result += 'a'; for(var i = 0; i < oData.length; i++){ var item = oData[i].toString(); result += item.length.toString() + '.' + item; } }else{ result += 'o'; for(var oKey in oData){ result += oKey.length.toString() + '.' + oKey + oData[oKey].length.toString() + '.' + oData[oKey]; } } } return result; } this.unserialize = function(oString){ var oData = null; if(oString.charAt(0) == 'a' || oString.charAt(0) == 'o'){ var isArray = oString.charAt(0) == 'a'; if(isArray){ oData = new Array(); }else{ oData = new Object(); } var dataLength = ''; var isShouldBeKey = isArray ? false : true; var keyValue = ''; for(var i = 1; i < oString.length; i++){ if(oString.charAt(i).match(/\d/)){ dataLength += oString.charAt(i); }else if(oString.charAt(i) == '.'){ dataLength = parseInt(dataLength); if(isShouldBeKey){ keyValue = oString.substr(i + 1, dataLength); isShouldBeKey = false; }else{ if(isArray){ oData[oData.length] = decodeURIComponent(oString.substr(i + 1, dataLength)); }else{ oData[keyValue] = decodeURIComponent(oString.substr(i + 1, dataLength)); isShouldBeKey = true; } keyValue = ''; } i = i + dataLength; dataLength = ''; } } } return oData; } } var amiFrontCommon = new amiFrontCommonClass(); function amiSessionClass(cookieName, sessionCookieName, cookieDays, cookieHours){ this.sessionCookieName = sessionCookieName; this.cookieName = cookieName; this.cookieDays = cookieDays; this.cookieHours = cookieHours; this.variables = new Object(); this.init = function(){ this.loadVariables(); } this.setCookieName = function(value){ this.cookieName = value; } this.setCookieLifetime = function(iDays, iHours){ this.cookieDays = iDays; this.cookieHours = iHours; } this.set = function(name, value){ this.variables[name] = value; this.storeVariables(); } this.del = function(name){ delete this.variables[name]; this.storeVariables(); } this.get = function(name){ if(typeof(this.variables[name]) != 'undefined'){ return this.variables[name]; } return ''; } this.storeVariables = function(){ var sVariables = amiFrontCommon.serialize(this.variables); setCookie(this.cookieName, sVariables, '/', this.cookieDays, this.cookieHours, true); } this.loadVariables = function(){ var sessionCookie = getCookie(this.sessionCookieName); if(sessionCookie != null){ var sVariables = getCookie(this.cookieName, true); this.variables = new Object(); if(sVariables != null){ this.variables = amiFrontCommon.unserialize(sVariables); if(typeof(this.variables) != 'object'){ this.variables = new Object(); } } }else{ delCookie(this.cookieName); } } this.init(); } var amiSession = new amiSessionClass('user_session', sessionCookieName, 30, 0); //updateCookieExpireTime('user_session', sessionTimeout); function amiGetUsername(source){ var res; if(source == 'username'){ res = amiSession.get('username_cookie'); }else{ res = amiSession.get('firstname_cookie') + ' ' + amiSession.get('lastname_cookie'); res = res.replace(/^\s*/, '').replace(/\s*$/, ''); } return res; } /* * Request class with the functions */ amiAjax = { requests: new Array(), variables: {}, urlHash: '', // Init XML HTTP object _initObjectRequest: function(requestId){ try{ this.requests[requestId]['transport'] = new XMLHttpRequest(); }catch(exception){ this.requests[requestId]['transport'] = null; } if(this.requests[requestId]['transport'] == null){ for(var i = 0; i < 2; i++){ activeXName = i == 0 ? 'Msxml2.XMLHTTP' : 'Microsoft.XMLHTTP'; try{ this.requests[requestId]['transport'] = new ActiveXObject(activeXName); }catch(exception){ this.requests[requestId]['transport'] = null; } if(this.requests[requestId]['transport'] != null){ break; } } } return (this.requests[requestId]['transport'] != null); }, // Create query string from variables object _getRequestVariables: function(requestId){ var variables = ''; for(var key in this.requests[requestId]['variables']){ variables += variables.length > 0 ? '&' : ''; variables += encodeURIComponent(key) + '=' + encodeURIComponent(this.requests[requestId]['variables'][key]); } return variables; }, // Create valid url for request _prepeareUrl: function(requestId){ var url = this.requests[requestId]['url']; if(this.requests[requestId]['method'] == 'GET'){ var variables = this._getRequestVariables(requestId); if(variables.length > 0){ url = url + '?' + variables; } if(this.requests[requestId]['hash'].length > 0){ url = url + '#' + encodeURIComponent(this.requests[requestId]['hash']); } }else if(this.requests[requestId]['method'] == 'POST'){ // ?? Required to check this part of code var variables = this._getRequestVariables(requestId); this.requests[requestId]['transport'].send(variables); } return url; }, // Process request for session parameters _request: function(requestId){ if(this._initObjectRequest(requestId)){ this.requests[requestId]['transport'].open(this.requests[requestId]['method'], this._prepeareUrl(requestId), true); if(this.requests[requestId]['method'] == 'GET'){ this.requests[requestId]['transport'].setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT'); this.requests[requestId]['transport'].send(null); }else{ this.requests[requestId]['transport'].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); this.requests[requestId]['transport'].send(this._getRequestVariables(requestId)); } setTimeout('amiAjax._checkResponse('+requestId+')', 10); }else{ alert('Problem with XML HTTP initialization'); } }, // Check the response from server and process action _checkResponse: function(requestId){ if(this.requests[requestId]['transport'].readyState == 4){ if(this.requests[requestId]['transport'].status == 200){ this.requests[requestId]['status'] = 1; this.requests[requestId]['content'] = this.requests[requestId]['transport'].responseText; }else{ this.requests[requestId]['status'] = 2; } if(this.requests[requestId]['callback'] != null){ this.requests[requestId]['callback'](this.requests[requestId]['status'], this.requests[requestId]['content']); } this.requests[requestId]['transport'] = null; this.requests[requestId] = null; }else{ setTimeout('amiAjax._checkResponse('+requestId+')', 10); } }, // Remove all query variables resetRequestVariables: function(){ this.variables = {}; }, // Add query variable addVariable: function(key, value){ this.variables[decodeURIComponent(key)] = decodeURIComponent(value); }, // Set url hash code setUrlHash: function(value){ this.urlHash = decodeURIComponent(value); }, // Parse query string and create variables object addVariablesFromString: function(variables){ this.resetRequestVariables(); variables = variables.replace(/^[\s?]*(.*?)[\s]*$/g, '$1'); var aHash = variables.split('#'); if(typeof(aHash[1]) != 'undefined'){ variables = aHash[0]; this.setUrlHash(aHash[1]); }else{ this.setUrlHash(''); } var aPairs = variables.split('&'); for(var i = 0; i < aPairs.length; i++){ aPair = aPairs[i].split('='); if(aPair[0] != ''){ this.addVariable(aPair[0], aPair[1]); } } }, getContent: function(method, url, variables, callbackFunction){ var requestId = this.requests.length; this.requests[requestId] = {}; this.requests[requestId]['status'] = 0; this.requests[requestId]['callback'] = typeof(callbackFunction) == 'function' ? callbackFunction : null; this.requests[requestId]['transport'] = null; this.requests[requestId]['method'] = method.toUpperCase(); this.requests[requestId]['url'] = url; if(typeof(variables) != 'undefined'){ this.addVariablesFromString(variables); } this.requests[requestId]['variables'] = this.variables; this.requests[requestId]['hash'] = this.urlHash; this.requests[requestId]['content'] = ''; this._request(requestId); } }