// ---------------------------------- zipform.js ---------------------------------------------------------
// Global Variables
var zipform_scheme = "http:";
var zipform_hostname = "www.oranges88.com";
var zipform_path = "sm";
var zipform_format = "json";
var zipform_maxcount = "5";
var zipform_page = "zipform.aspx";
var zipform_src = "";
var zipform_debugjs = "no";
var zipform_feedcalled = "no";
var zipform_siteid = "157"
var zipform_gfeed;


// Calls the partner ppc feed executes the resulting JSON object
function zf_showAds() {

    if (zf_checkParams()) {
        zf_callFeed();
    }
    return false;
}


function zf_renderAds() {
    a_debug("Render Form");
/*
    if (zipform_gfeed.catid == null || zipform_gfeed.catid == "undefined" || zipform_gfeed.catid == "")
        {document.getElementById("zip-box").style.display="none"; }
        else
        {
    */
    try {
        
        if (typeof zipform_gfeed != "undefined" && zipform_gfeed != null) {

            var strB = new Array(); // Equivalent to a string builder in other languages

            strB.push('<span id="find-local">' + 'Find Local:' + '</span><div id="h5"><h5 id="zipText">' + zipform_gfeed.description + '</h5></div>');
	    
	    strB.push('<form id="zipform" name="zipform" action="/smresults.aspx" method="GET">');
	    if (zipform_gfeed.formtype && zipform_gfeed.formtype == "Category" && zipform_gfeed.catid && zipform_gfeed.catid != "") {
   	        strB.push('<input id="cid" name="cid" type="hidden" value="'+zipform_gfeed.catid+'"></input>');
   	        strB.push('<input id="ept" name="ept" type="hidden" value="'+zipform_gfeed.ept+'"></input>');
   	        strB.push('<input id="aid" name="aid" type="hidden" value="'+zipform_gfeed.adid+'"></input>');
   	        strB.push('<input id="ft" name="ft" type="hidden" value="'+zipform_gfeed.formtype+'"></input>');
	    }
	    if (zipform_gfeed.formtype && zipform_gfeed.formtype == "Task" && zipform_gfeed.taskid && zipform_gfeed.taskid!= "") {
   	        strB.push('<input id="cid" name="cid" type="hidden" value="'+zipform_gfeed.catid+'"></input>');
   	        strB.push('<input id="tid" name="tid" type="hidden" value="'+zipform_gfeed.taskid+'"></input>');
   	        strB.push('<input id="ept" name="ept" type="hidden" value="'+zipform_gfeed.ept+'"></input>');
   	        strB.push('<input id="aid" name="aid" type="hidden" value="'+zipform_gfeed.adid+'"></input>');
   	        strB.push('<input id="ft" name="ft" type="hidden" value="'+zipform_gfeed.formtype+'"></input>');
   	        
	    }
	    strB.push('<input id="serviceName" name="serviceName" type="hidden" value="' + zipform_gfeed.description + '"></input>');
	    strB.push('<input id="keywords" name="pmkeyword" type="hidden" value="' + zipform_gfeed.description + '"></input>');
	    strB.push('<div id="zipfields">');
	    strB.push('<input type="text" name="zipcode" id="zip" value="Enter Zip" align="center" class="cleardefault"/>');
	    strB.push('<input type="image" value="" id="zipbutton" src='+zf_mediaserver+'/i/servicemagic/zipbutton.gif />');
	    strB.push('</div>');
	    strB.push('</form>');
	    
	    a_debug("Render this: " + strB.join(""));
		
		var mylist = document.getElementsByTagName("div");
		var divcount = 0;
		for (i=1; i<mylist.length; i++){
			if(mylist[i].id == "zip-box") {
				divcount += 1;
				//alert(mylist[i].id);
				mylist[i].style.display = 'block';
				mylist[i].innerHTML = strB.join("");
				a_debug("InnerHtml: " + mylist[i].innerHTML);
			}
		}

        } else {
            // Handle no feed			
            return;
        }
    } catch (err) { }
    //}
    return;
}

function zf_callFeed() {
    a_debug("zf_callFeed - zipform_feedcalled: " + zipform_feedcalled);
    if (zipform_feedcalled == 'no') {
        a_debug("zf_callFeed - calling feed now");
        var headID = document.getElementsByTagName("head")[0];
        var newScript = document.createElement('script');
        newScript.type = 'text/javascript';
        newScript.src = zipform_src;
        headID.appendChild(newScript);
        zipform_feedcalled = "yes";

    } 
}

// Renders the feed from returned JSON object
function zipForm(feed) {
    zipform_gfeed = eval(feed);
    zf_renderAds();
}

function zf_getUrlAndPath(withpath) {
    var returl = "";
    var cur_scheme = document.location.protocol;
    if (cur_scheme == 'https:')
        zipform_scheme = cur_scheme;

    if (typeof zf_host != "undefined" && zf_host != null) zipform_hostname = zf_host;

    if (typeof zf_path != "undefined" && zf_path != null) zipform_path = zf_path;

    returl = zipform_scheme + '//';
    returl += zipform_hostname;
    if (withpath) returl += '/' + zipform_path;
    return returl;

}

var add_params = "";
function zf_checkParams() {
    if (zipform_feedcalled == "no") {
        var url_params2 = new Array();
	url_params2.push('format=' + zipform_format);
	if (typeof zf_siteid != "undefined" && zf_siteid != null) zipform_siteid = zf_siteid;
	url_params2.push('siteid=' + zipform_siteid);
        var cur_url = window.location.href;
        var serve_url = cur_url;
	if (cur_url.indexOf('?') > 0) serve_url = cur_url.substr(0, cur_url.indexOf('?'));
	url_params2.push('serveUrl=' + encodeURIComponent(serve_url));
	if (url_params2.length != undefined && url_params2.length > 0) add_params = url_params2.join("&");
	if (add_params != "") {
		zipform_src = zf_getUrlAndPath(true) + '/';
                zipform_src += zipform_page + '?';
                zipform_src += add_params;
                a_debug('Debug feed url: \n' + zipform_src + '\n');
        }
    } // end if havefeed = no
    return true;
}


// If JS Debug
if (zipform_debugjs == 'yes') {
    document.write('<form id="zf_jsdebug"><textarea id="zf42out" rows="10" cols="100"></textarea></form>');
    var f = document.forms["zf_jsdebug"];
}

function a_debug(str) {
    if (zipform_debugjs == 'yes') f.elements["zf42out"].value += str + "\n";
}


// Call function to show Ads
zf_showAds();



// ---------------------------------- util-functions.js ---------------------------------------------------------

/* 
 * Cross-browser event handling, by Scott Andrew
 */
function addEvent(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    } else {
        return false;
    }
}

/* 
 * Kills an event's propagation and default action
 */
function knackerEvent(eventObject) {
    if (eventObject && eventObject.stopPropagation) {
        eventObject.stopPropagation();
    }
    if (window.event && window.event.cancelBubble ) {
        window.event.cancelBubble = true;
    }
    
    if (eventObject && eventObject.preventDefault) {
        eventObject.preventDefault();
    }
    if (window.event) {
        window.event.returnValue = false;
    }
}

/* 
 * Safari doesn't support canceling events in the standard way, so we must
 * hard-code a return of false for it to work.
 */
function cancelEventSafari() {
    return false;        
}

/* 
 * Cross-browser style extraction, from the JavaScript & DHTML Cookbook
 * <http://www.oreillynet.com/pub/a/javascript/excerpt/JSDHTMLCkbk_chap5/index5.html>
 */
function getElementStyle(elementID, CssStyleProperty) {
    var element = document.getElementById(elementID);
    if (element.currentStyle) {
        return element.currentStyle[toCamelCase(CssStyleProperty)];
    } else if (window.getComputedStyle) {
        var compStyle = window.getComputedStyle(element, '');
        return compStyle.getPropertyValue(CssStyleProperty);
    } else {
        return '';
    }
}

/* 
 * CamelCases CSS property names. Useful in conjunction with 'getElementStyle()'
 * From <http://dhtmlkitchen.com/learn/js/setstyle/index4.jsp>
 */
function toCamelCase(CssProperty) {
    var stringArray = CssProperty.toLowerCase().split('-');
    if (stringArray.length == 1) {
        return stringArray[0];
    }
    var ret = (CssProperty.indexOf("-") == 0)
              ? stringArray[0].charAt(0).toUpperCase() + stringArray[0].substring(1)
              : stringArray[0];
    for (var i = 1; i < stringArray.length; i++) {
        var s = stringArray[i];
        ret += s.charAt(0).toUpperCase() + s.substring(1);
    }
    return ret;
}

/*
 * Disables all 'test' links, that point to the href '#', by Ross Shannon
 */
function disableTestLinks() {
  var pageLinks = document.getElementsByTagName('a');
  for (var i=0; i<pageLinks.length; i++) {
    if (pageLinks[i].href.match(/[^#]#$/)) {
      addEvent(pageLinks[i], 'click', knackerEvent, false);
    }
  }
}

/* 
 * Cookie functions
 */
function createCookie(name, value, days) {
    var expires = '';
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        var expires = '; expires=' + date.toGMTString();
    }
    document.cookie = name + '=' + value + expires + '; path=/';
}

function readCookie(name) {
    var cookieCrumbs = document.cookie.split(';');
    var nameToFind = name + '=';
    for (var i = 0; i < cookieCrumbs.length; i++) {
        var crumb = cookieCrumbs[i];
        while (crumb.charAt(0) == ' ') {
            crumb = crumb.substring(1, crumb.length); /* delete spaces */
        }
        if (crumb.indexOf(nameToFind) == 0) {
            return crumb.substring(nameToFind.length, crumb.length);
        }
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, '', -1);
}

// ---------------------------------- clear-default-text.js ---------------------------------------------------------

/*
 * Clear Default Text: functions for clearing and replacing default text in
 * <input> elements.
 *
 * by Ross Shannon, http://www.yourhtmlsource.com/
 */

addEvent(window, 'load', init, false);

function init() {
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];
        
        if (theInput.type == 'text' && theInput.className.match(/\bcleardefault\b/)) {  
            /* Add event handlers */          
            addEvent(theInput, 'focus', clearDefaultText, false);
            addEvent(theInput, 'blur', replaceDefaultText, false);
            
            /* Save the current value */
            if (theInput.value != '') {
                theInput.defaultText = theInput.value;
            }
        }
    }
}

function clearDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == target.defaultText) {
        target.value = '';
    }
}

function replaceDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == '' && target.defaultText) {
        target.value = target.defaultText;
    }
}
