/* * Browser check */ function Browser() { var b=navigator.appName; if (b.indexOf('Netscape')!=-1) this.b="ns"; else if ((b=="Opera") || (navigator.userAgent.indexOf("Opera")>0)) this.b = "opera"; else if (b=="Microsoft Internet Explorer") this.b="ie"; if (!b) alert('Unidentified browser.\nThis browser is not supported,'); this.version=navigator.appVersion; this.v=parseInt(this.version); this.ns=(this.b=="ns" && this.v>=4); this.ns4=(this.b=="ns" && this.v==4); this.ns6=(this.b=="ns" && this.v==5); this.ie=(this.b=="ie" && this.v>=4); this.ie4=(this.version.indexOf('MSIE 4')>0); this.ie5=(this.version.indexOf('MSIE 5')>0); this.ie55=(this.version.indexOf('MSIE 5.5')>0); this.ie6=(this.version.indexOf('MSIE 6.0')>0); this.opera=(this.b=="opera"); this.gecko = (navigator.product == "Gecko"); this.dom=(document.createElement && document.appendChild && document.getElementsByTagName)?true:false; this.def=(this.ie||this.dom); // most used browsers, for faster if loops var ua=navigator.userAgent.toLowerCase(); if (ua.indexOf("win")>-1) this.platform="win32"; else if (ua.indexOf("mac")>-1) this.platform="mac"; else this.platform="other"; } is=new Browser(); /* * IE emulator objects */ function emulateAllModel() { var allGetter = function () { var a = this.getElementsByTagName("*"); var node = this; a.tags = function (sTagName) { return node.getElementsByTagName(sTagName); }; return a; }; HTMLDocument.prototype.__defineGetter__("all", allGetter); HTMLElement.prototype.__defineGetter__("all", allGetter); } function emulateHTMLModel() { // This function is used to generate a html string for the text properties/methods // It replaces '\n' with " as well as fixes consecutive white spaces // It also repalaces some special characters function convertTextToHTML(s) { s = s.replace(/\&/g, "&").replace(//g, ">").replace(/\n/g, "
"); while (/\s\s/.test(s)) s = s.replace(/\s\s/, "  "); return s.replace(/\s/g, " "); } HTMLElement.prototype.insertAdjacentHTML = function (sWhere, sHTML) { var df; // : DocumentFragment var r = this.ownerDocument.createRange(); switch (String(sWhere).toLowerCase()) { case "beforebegin": r.setStartBefore(this); df = r.createContextualFragment(sHTML); this.parentNode.insertBefore(df, this); break; case "afterbegin": r.selectNodeContents(this); r.collapse(true); df = r.createContextualFragment(sHTML); this.insertBefore(df, this.firstChild); break; case "beforeend": r.selectNodeContents(this); r.collapse(false); df = r.createContextualFragment(sHTML); this.appendChild(df); break; case "afterend": r.setStartAfter(this); df = r.createContextualFragment(sHTML); this.parentNode.insertBefore(df, this.nextSibling); break; } }; HTMLElement.prototype.__defineSetter__("outerHTML", function (sHTML) { var r = this.ownerDocument.createRange(); r.setStartBefore(this); var df = r.createContextualFragment(sHTML); this.parentNode.replaceChild(df, this); return sHTML; }); HTMLElement.prototype.__defineGetter__("canHaveChildren", function () { switch (this.tagName) { case "AREA": case "BASE": case "BASEFONT": case "COL": case "FRAME": case "HR": case "IMG": case "BR": case "INPUT": case "ISINDEX": case "LINK": case "META": case "PARAM": return false; } return true; }); HTMLElement.prototype.__defineGetter__("outerHTML", function () { var attr, attrs = this.attributes; var str = "<" + this.tagName; for (var i = 0; i < attrs.length; i++) { attr = attrs[i]; if (attr.specified) str += " " + attr.name + '="' + attr.value + '"'; } if (!this.canHaveChildren) return str + ">"; return str + ">" + this.innerHTML + ""; }); HTMLElement.prototype.__defineSetter__("innerText", function (sText) { this.innerHTML = convertTextToHTML(sText); return sText; }); var tmpGet; HTMLElement.prototype.__defineGetter__("innerText", tmpGet = function () { var r = this.ownerDocument.createRange(); r.selectNodeContents(this); return r.toString(); }); HTMLElement.prototype.__defineSetter__("outerText", function (sText) { this.outerHTML = convertTextToHTML(sText); return sText; }); HTMLElement.prototype.__defineGetter__("outerText", tmpGet); HTMLElement.prototype.insertAdjacentText = function (sWhere, sText) { this.insertAdjacentHTML(sWhere, convertTextToHTML(sText)); }; } /* * Init Emulator objects */ if (is.gecko) emulateAllModel(); if (is.gecko) emulateHTMLModel(); // See on vaja var variableFromEditRubriik_id=''; function zoomTo(width,height,Page) { if (document.all) { //if (Page!=''){this.location.href=Page}; var newTop = (screen.width-width)/2 var newLeft = (screen.height-height)/2 window.moveTo(newTop,newLeft) window.resizeTo(width,height) } } //--------------------------------------------------------- // window opening functions //--------------------------------------------------------- function avapopup(mypage, myname, w, h, scroll) { var winl = (screen.width - w) / 2; var wint = (screen.height - h) / 2; winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',notresizable' win = window.open(mypage, myname, winprops) if (win.opener == null) { win.opener = self } if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); } } function avaaken(link, x, y, nimi) { var winl = (screen.width - x) / 2; var wint = (screen.height - y) / 2; editWindow = window.open(link, nimi,'width='+x+',height='+y+',top='+wint+',left='+winl+',toolbar=0,directories=0,menubar=0,status=0,resizable=1,location=0,scrollbars=yes,copyhistory=0'); if (editWindow.opener == null) { editWindow.opener = self } } function avaaken2(link, x, y, doScroll) { var winl = (screen.width-x)/2; var wint = (screen.height-y)/2; var scr = (doScroll)? 'yes' : 'no' var newWin = window.open(link, 'Fail','width='+x+',height='+y+',toolbar=0,directories=0,menubar=0,status=0,resizable=1,location=0,scrollbars=' + scr + ',copyhistory=0,left=' + winl + ',top=' + wint); newWin.focus(); } function avaaken3(winname,link, x, y, doScroll) { var winl = (screen.width-x)/2; var wint = (screen.height-y)/2; var scr = (doScroll)? 'yes' : 'no' var newWin = window.open(link, winname,'width='+x+',height='+y+',toolbar=0,directories=0,menubar=0,status=0,resizable=1,location=0,scrollbars=' + scr + ',copyhistory=0,left=' + winl + ',top=' + wint); newWin.focus(); } function avaprintaken(link, x, y, nimi, toolbar) { var winl = (screen.width - x) / 2; var wint = (screen.height - y) / 2; editWindow = window.open(link, nimi,'width='+x+',height='+y+',top='+wint+',left='+winl+',toolbar='+toolbar+',directories=0,menubar=1,status=0,resizable=1,location=0,scrollbars=yes,copyhistory=0'); if (editWindow.opener == null) { editWindow.opener = self } } function gallupaken(link, x, y, nimi) { var winl = (screen.width - x) / 2; var wint = (screen.height - y) / 2; editWindow = window.open(link, nimi,'width='+x+',height='+y+',top='+wint+',left='+winl+',toolbar=0,directories=0,menubar=0,status=0,resizable=1,location=0,scrollbars=no,copyhistory=0'); if (editWindow.opener == null) { editWindow.opener = self } } //--------------------------------------------------------- // dialog window functions (works both in IE and NN) //--------------------------------------------------------- // Global for brower version branching. var Nav4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4)) // One object tracks the current modal dialog opened from this window. var dialogWin = new Object() // Generate a modal dialog. // Parameters: // url -- URL of the page/frameset to be loaded into dialog // width -- pixel width of the dialog window // height -- pixel height of the dialog window // returnFunc -- reference to the function (on this page) // that is to act on the data returned from the dialog // args -- [optional] any data you need to pass to the dialog function openDialog(url, width, height, returnFunc, args) { if (!dialogWin.win || (dialogWin.win && dialogWin.win.closed)) { // Initialize properties of the modal dialog object. dialogWin.returnFunc = returnFunc dialogWin.returnedValue = "" dialogWin.args = args dialogWin.url = url dialogWin.width = width dialogWin.height = height // Keep name unique so Navigator doesn't overwrite an existing dialog. dialogWin.name = (new Date()).getSeconds().toString() // Assemble window attributes and try to center the dialog. if (Nav4) { // Center on the main window. dialogWin.left = window.screenX + ((window.outerWidth - dialogWin.width) / 2) dialogWin.top = window.screenY + ((window.outerHeight - dialogWin.height) / 2) var attr = "screenX=" + dialogWin.left + ",screenY=" + dialogWin.top + ",resizable=no,width=" + dialogWin.width + ",height=" + dialogWin.height } else { // The best we can do is center in screen. dialogWin.left = (screen.width - dialogWin.width) / 2 dialogWin.top = (screen.height - dialogWin.height) / 2 var attr = "left=" + dialogWin.left + ",top=" + dialogWin.top + ",resizable=no,width=" + dialogWin.width + ",height=" + dialogWin.height } // Generate the dialog and make sure it has focus. dialogWin.win=window.open(dialogWin.url, dialogWin.name, attr) dialogWin.win.focus() } else { dialogWin.win.focus() } } // Event handler to inhibit Navigator form element // and IE link activity when dialog window is active. function deadend() { if (dialogWin.win && !dialogWin.win.closed) { dialogWin.win.focus() return false } } // Since links in IE4 cannot be disabled, preserve // IE link onclick event handlers while they're "disabled." // Restore when re-enabling the main window. var IELinkClicks // Disable form elements and links in all frames for IE. function disableForms() { IELinkClicks = new Array() for (var h = 0; h < frames.length; h++) { for (var i = 0; i < frames[h].document.forms.length; i++) { for (var j = 0; j < frames[h].document.forms[i].elements.length; j++) { frames[h].document.forms[i].elements[j].disabled = true } } IELinkClicks[h] = new Array() for (i = 0; i < frames[h].document.links.length; i++) { IELinkClicks[h][i] = frames[h].document.links[i].onclick frames[h].document.links[i].onclick = deadend } } } // Restore IE form elements and links to normal behavior. function enableForms() { for (var h = 0; h < frames.length; h++) { for (var i = 0; i < frames[h].document.forms.length; i++) { for (var j = 0; j < frames[h].document.forms[i].elements.length; j++) { frames[h].document.forms[i].elements[j].disabled = false } } for (i = 0; i < frames[h].document.links.length; i++) { frames[h].document.links[i].onclick = IELinkClicks[h][i] } } } // Grab all Navigator events that might get through to form // elements while dialog is open. For IE, disable form elements. function blockEvents() { if (Nav4) { window.captureEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS) window.onclick = deadend } else { disableForms() } window.onfocus = checkModal } // As dialog closes, restore the main window's original // event mechanisms. function unblockEvents() { if (Nav4) { window.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS) window.onclick = null window.onfocus = null } else { enableForms() } } // Invoked by onFocus event handler of EVERY frame, // return focus to dialog window if it's open. function checkModal() { if (dialogWin.win && !dialogWin.win.closed) { dialogWin.win.focus() } } //--------------------------------------------------------- // ticker functions //--------------------------------------------------------- // width of the ticker var tickerwidth=230 // height of the ticker var tickerheight=67 // distance from the messagetext to the tickermarrgin (pixels) var tickerpadding=5 // borderwidth of the ticker (pixels) var borderwidth=0 // font-family var fnt="Verdana,Arial Cyr,Helvetica Cyr,Arial,Ms Sans Serif" // font-size of the text (px) var fntsize=11 // font-color of the text var fntcolor="000000" // font-weight. Set a value between 1 to 9 to adjust the boldness var fntweight=3 // backgroundcolor var backgroundcolor="dadada" // horizontal distance from the textlink to the popupbox (pixels) //var xdistance=-tickerwidth-10 var xdistance=-10 // vertical distance from the textlink to the popupbox (pixels) var ydistance=-84 // Do not edit the variables below var topposition=200; var rightposition=500; var x=screen.width/2; var y=screen.height/2; var i_message=0; var message; var messagecontent=""; var messagebackground=""; fntweight=fntweight*100; function getmessagebackground() { messagebackground="
"; messagebackground+=" 
"; } function getmessagecontent(defword,sometext) { messagecontent="
"; messagecontent+="" ; messagecontent+=""; messagecontent+=""+defword+"
"+sometext; messagecontent+="
"; messagecontent+="
"; messagecontent+="
"; } function showmessage(word,linkmessage,myevent) { x = (document.layers) ? myevent.pageX : document.body.scrollLeft+event.clientX; y = (document.layers) ? myevent.pageY : document.body.scrollTop+event.clientY; leftposition = x; getmessagebackground(); myword=word; getmessagecontent(myword,linkmessage); rightposition=x+xdistance+tickerwidth; topposition = y-ydistance-tickerheight; leftposition=x+xdistance; if (document.all) { document.all.ticker.style.posLeft=leftposition; document.all.ticker.style.posTop=topposition; document.all.tickerbg.style.posLeft=leftposition; document.all.tickerbg.style.posTop=topposition; tickerbg.innerHTML=messagebackground; document.all.ticker.style.visibility="visible"; document.all.tickerbg.style.visibility="visible"; ticker.innerHTML=messagecontent; } if (document.layers) { document.captureEvents(Event.MOUSEMOVE); document.ticker.left=leftposition document.ticker.top=topposition document.tickerbg.left=leftposition document.tickerbg.top=topposition document.tickerbg.document.write(messagebackground) document.tickerbg.document.close() document.ticker.visibility="visible" document.tickerbg.visibility="visible" document.ticker.document.write(messagecontent) document.ticker.document.close() } } function hideticker() { if (document.all) { document.all.ticker.style.visibility="hidden" document.all.tickerbg.style.visibility="hidden" } if (document.layers) { document.ticker.visibility="hidden" document.tickerbg.visibility="hidden" } } function replace(string,text,by) { // Replaces text with by in string var strLength = string.length, txtLength = text.length; if ((strLength == 0) || (txtLength == 0)) return string; var i = string.indexOf(text); if ((!i) && (text != string.substring(0,txtLength))) return string; if (i == -1) return string; var newstr = string.substring(0,i) + by; if (i+txtLength < strLength) newstr += replace(string.substring(i+txtLength,strLength),text,by); return newstr; } function jsCloseRefresh() { if (window.opener!=null) { if (variableFromEditRubriik_id!='undefined' && variableFromEditRubriik_id!=null && variableFromEditRubriik_id!='') { mylocation = ''+window.opener.location+''; mylocation = replace(mylocation,'?id=','?old_id='); mylocation = replace(mylocation,'&id=','&old_id='); temp= mylocation.indexOf('?'); if (temp == -1) { mylocation+='?id='+variableFromEditRubriik_id; } else { mylocation+='&id='+variableFromEditRubriik_id;}; window.opener.location=mylocation; } else {window.opener.location=window.opener.location;} } window.close(); } function do_perm(first,seccond) { self.opener.location.replace(first+'&puu_keel='+seccond); self.close(); } //--------------------------------------------------------- // Form Check //--------------------------------------------------------- var whitespace = " \t\n\r"; function isEmpty(s) { return ((s == null) || (s.length == 0)) } function isWhitespace (s) { var i; if (isEmpty(s)) return true; for (i = 0; i < s.length; i++) { var c = s.charAt(i); if (whitespace.indexOf(c) == -1) return false; } return true; } function check_string (theField,alert_txt) { if (isWhitespace(theField.value)) { if(!isWhitespace(alert_txt)) { alert(alert_txt); } //Trick to fool stupid browsers if(theField.focus()){}; return false; } else { return true; } } function check_email (theField,alert_txt){ var s = theField.value; // is s whitespace? if (isWhitespace(s)) { if(!isWhitespace(alert_txt)) { alert(alert_txt); } //Trick to fool stupid browsers if(theField.focus()){}; return false; } // there must be >= 1 character before @, so we // start looking at character position 1 // (i.e. second character) var i = 1; var sLength = s.length; // look for @ while ((i < sLength) && (s.charAt(i) != "@")) { i++ } if ((i >= sLength) || (s.charAt(i) != "@")) { if(!isWhitespace(alert_txt)) { alert(alert_txt); } //Trick to fool stupid browsers if(theField.focus()){}; return false; } else { i += 2; } // look for . while ((i < sLength) && (s.charAt(i) != ".")) { i++ } // there must be at least one character after the . if ((i >= sLength - 1) || (s.charAt(i) != ".")) { if(!isWhitespace(alert_txt)) { alert(alert_txt); } //Trick to fool stupid browsers if(theField.focus()){}; return false; } else { return true; } } //--------------------------------------------------------- // Metadata Required Field //--------------------------------------------------------- var metadata_required_fields = new Array(); function metadata_reguire_field() { alert('asas'); } //--------------------------------------------------------- // Shopping cart functionality //--------------------------------------------------------- function add_to_cart(formname,page,prod) { var qty; qty = eval('document.forms["'+formname+'"].qty'+prod+'.value'); if (isEmpty(qty)) { qty = 1; } if (isWhitespace(qty)) { qty = 1; } avapopup(page + '?add=' + prod + '&qty=' + qty, 'add2cart', 250, 150, 'no'); } function del_from_cart(formname,page,prod) { window.location.replace(page + '&del=' + prod); } function to_cart() { if(window.name=='add2cart' && window.opener) { window.opener.location.replace('./index.php?op=cart'); window.close(); } else { window.location.replace('./index.php?op=cart'); } } function save_cart(page) { avapopup(page + '?op=save', 'savecart', 250, 100, 'no'); } function setCookie(name, value, expire,path) { document.cookie = name + "=" + escape(value)+((expire == null)?"":(";expires="+expire.toGMTString()))+";path="+((path == null)?"/":path) } function changeCookie(data,path) { var today = new Date(); var expires = new Date(); expires.setTime(today.getTime() + 3600*24*31); setCookie("saurus_shoppingcart", data, expires,path); }