// functions.js
function newTarget(B){var A=document.createAttribute("target");A.value="_blank";B.setAttributeNode(A);}function popUp(B,C,A){window.open(B,"popup","toolbar=0,location=0,statusbar=0,menubar=0,resizable=1,scrollbars=yes,width="+C+",height="+A+",left = 100,top = 50");}function validateEmail(A){return A.value.match(/^\w(\.?[\w-])*@\w(\.?[\w-])*\.[a-z]{2,6}$/);}

// json 2
(function($){$.toJSON=function(o)
{if(typeof(JSON)=='object'&&JSON.stringify)
return JSON.stringify(o);var type=typeof(o);if(o===null)
return"null";if(type=="undefined")
return undefined;if(type=="number"||type=="boolean")
return o+"";if(type=="string")
return $.quoteString(o);if(type=='object')
{if(typeof o.toJSON=="function")
return $.toJSON(o.toJSON());if(o.constructor===Date)
{var month=o.getUTCMonth()+1;if(month<10)month='0'+month;var day=o.getUTCDate();if(day<10)day='0'+day;var year=o.getUTCFullYear();var hours=o.getUTCHours();if(hours<10)hours='0'+hours;var minutes=o.getUTCMinutes();if(minutes<10)minutes='0'+minutes;var seconds=o.getUTCSeconds();if(seconds<10)seconds='0'+seconds;var milli=o.getUTCMilliseconds();if(milli<100)milli='0'+milli;if(milli<10)milli='0'+milli;return'"'+year+'-'+month+'-'+day+'T'+
hours+':'+minutes+':'+seconds+'.'+milli+'Z"';}
if(o.constructor===Array)
{var ret=[];for(var i=0;i<o.length;i++)
ret.push($.toJSON(o[i])||"null");return"["+ret.join(",")+"]";}
var pairs=[];for(var k in o){var name;var type=typeof k;if(type=="number")
name='"'+k+'"';else if(type=="string")
name=$.quoteString(k);else
continue;if(typeof o[k]=="function")
continue;var val=$.toJSON(o[k]);pairs.push(name+":"+val);}
return"{"+pairs.join(", ")+"}";}};$.evalJSON=function(src)
{if(typeof(JSON)=='object'&&JSON.parse)
return JSON.parse(src);return eval("("+src+")");};$.secureEvalJSON=function(src)
{if(typeof(JSON)=='object'&&JSON.parse)
return JSON.parse(src);var filtered=src;filtered=filtered.replace(/\\["\\\/bfnrtu]/g,'@');filtered=filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']');filtered=filtered.replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered))
return eval("("+src+")");else
throw new SyntaxError("Error parsing JSON, source is not valid.");};$.quoteString=function(string)
{if(string.match(_escapeable))
{return'"'+string.replace(_escapeable,function(a)
{var c=_meta[a];if(typeof c==='string')return c;c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"';}
return'"'+string+'"';};var _escapeable=/["\\\x00-\x1f\x7f-\x9f]/g;var _meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};})(jQuery);

// Required
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

// Master.js
jQuery(document).ready(function($){

if ($(".tab.selectedForm").length > 0) {
  var thisTab = $(".tab.selectedForm").attr("id");
  var tabId = thisTab.split("_")
  displayTab(tabId[1]);
}

    var emailpattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
    $("body").bind("loadCookie", function(){
        ips.data.history = [];
		var loadCookie = $.cookie("history") || '';
        var cookie = loadCookie !== '' ? $.secureEvalJSON(loadCookie) : null ;
        if (typeof cookie === "object" && cookie !== null) {ips.data.history = cookie;}
        var historyLength = ips.data.history.length;
        if (historyLength) {
            var items = "";
            for (var j = 0;j < historyLength; j++) {
                if (ips.data.history[j] && ips.data.history[j] !== null) {
                  items += "<li><a href='"+ ips.data.history[j].url+"'>" + ips.data.history[j].name + "</a></li>";
                }
            }
            $("<div id='lastProductsList'><h3>" + ips.strings.lastviewed + "</h3><ul id='navHistory' class='nav'>"+ items + "</ul></div>").appendTo("#leftColumn");
        } 
        var newArray = [];
        if ($(".product").hasClass("detailed")) {
            var sitetitle = document.title + ""; // gets window title
            var name = sitetitle.substring(0,sitetitle.indexOf(":")); // gets windowtitle, and gets navigated part before ":"
            var isUnique = true; // var for checking if unique
            for (var h = 0;h < historyLength; h++) {
                if(ips.data.history[h] && ips.data.history[h] !== undefined && ips.data.history[h].name === name) {
                    isUnique = false;
					break;
                }
            }
            if (h === 0 && ips.data.history[1]) {
				newArray[0] = ips.data.history.splice(0, 1)[0];
			}  else if (isUnique) {
                newArray[0] = {"name":  name , "url": window.location+"" };			
			}  else if (!isUnique){
				newArray[0] = ips.data.history.splice(h, 1)[0];		
			}
			newArray[1] = ips.data.history[0];
			newArray[2] = ips.data.history[1];
			newArray[3] = ips.data.history[2];
			newArray[4] = ips.data.history[3];
            $.cookie('history', $.toJSON(newArray), { expires: 100, path: '/'});
        } 
    }) // end event
    .trigger("loadCookie"); // trigger  event on body


	if ($("#tipsForm").length) {
		$("#tipsForm").submit(function() {   
		  var $this = $(this),
			  $senderEmail = $this.find("#senderEmail").removeClass("error"),
			  $recipientEmail = $this.find("#recipientEmail").removeClass("error");
		  if (!emailpattern.test($senderEmail.val())) {
			  $senderEmail.addClass("error").focus();
			  return false;
		  } else if(!emailpattern.test($recipientEmail.val())){
			  $recipientEmail.addClass("error").focus();
			  return false;
		  }
		  $.ajax({
		  method: 'post',
		  url: ips.system.urlroot,
		  data: $(this).serialize(),
		  error: function(msg){
			 $("#objectResponse").html(ips.strings.tipafrienderror); 
		  },
		  success: function(data){
			 $("#objectResponse").html(ips.strings.tipafriendsuccess);
			 $("#tipsForm").reset();
		  }
		  }); 
		return false;
		});
	}


});
