function setCookie(name, value, expires) {
    document.cookie=name+"="+value+
            ((expires) ? "; expires="+expires.toGMTString() : "");
}

function getCookie(name) {
    s = document.cookie;
    l = name.length+1;
    start = s.indexOf(name+"=");
    if (start==-1) {
        v = "";
    } else {
        start += l;
        end = s.indexOf(";", start);
        if (end==-1) {
            end = s.length;
        }
        v = s.substring(start, end);
    }
    return v;
}

function readFormParameter(field) {
    urlquery=location.href.split("?");
    urlterms=urlquery[1].split("&");
    for (i=0;i<urlterms.length;i++) {
        name = field.name;
        if (urlterms[i].indexOf(name+"=")==0) {
            field.value=urlterms[i].substring(name.length+1,urlterms[i].length);
        }
    }
}

function getURLParameter(name) {
    urlquery=location.href.split("?");
    if (urlquery.length>1) {
        urlterms=urlquery[1].split("&");
        for (i=0;i<urlterms.length;i++) {
            if (urlterms[i].indexOf(name+"=")==0) {
                return decodeURIComponent(urlterms[i].substring(name.length+1,urlterms[i].length));
            }
        }
    }
    return null;
}

function setCookieFromURLParameter(name, time) {
    v = getURLParameter(name);
    if (v!=null) {
        if (time) {
            setCookie(name, v, new Date(new Date().getTime()+time));
        } else {
            setCookie(name, v);
        }
    }
}

function setFieldFromCookie(field, name, endString) {
    c=getCookie(name);
    if (c!=null) {
        field.value=c+endString;
    }
}

function setFieldFromCookieTrunc(field, name, preLength) {
    c=getCookie(name);
    if (c!=null) {
        field.value=c.substring(preLength);
    }
}

function redirectCookie(name, type, url) {
    c=getCookie(name);
    if (c!=null) {
        if (c.indexOf(type)==0) {
            document.location = url;
        }
    }
}

function redirectHREFCookie(name, type, ref, url) {
    c=getCookie(name);
    if (c!=null) {
        if (c.indexOf(type)==0) {
            ref.href = url;
        }
    }
}

function redirectActionCookie(name, type, ref, url) {
    c=getCookie(name);
    if (c!=null) {
        if (c.indexOf(type)==0) {
            ref.action = url;
        }
    }
}

function getOS() {
   var ua = navigator.userAgent.toLowerCase();
   var OS;

   if (ua. indexOf("win")>-1) {
	OS = "Win";
   } else if (ua.indexOf("mac")>-1) {
        OS = "Mac";
   } else {
	OS = "Other";
   }
   return OS;
}

function popup(url, title, width, height) {
   popupWindow = window.open(url, title, "location=no,width="+width+",height="+height);
}

function setCookieAdwords(name, value, expire){
	var s = ""
	var v = getURLParameter("ref");
    if (v!=null) {
		s = "-"+getURLParameter("ag")+getURLParameter("ad");
	}
	var pattern = /google\./i;
	if (pattern.exec(document.referrer) != null){
		var url_parts = document.referrer.split('?');
		if (url_parts[1]){ 
			var url_args = url_parts[1].split('&');
			for(var i=0; i<url_args.length; i++){
				var keyval = url_args[i].split('=');
				if (keyval[0] == 'q'){
					setCookie(name, value+s+"-"+keyval[1], expire);
					return;
				}
			}
		}
	}
	setCookie(name, value+s, expire);
}

