/* Config Domain to Parent : parentsconnect.com doamin*/

var siteConfig = function () {
    var h = window.location.host;
    conf = { mainHost: 'parentsconnect.com' };
    if(h.match(/.parentsconnect-d.mtvi.com/)){ conf.mainHost = 'parentsconnect-d.mtvi.com'; }
    if (h.match(/.parentsconnect-q.mtvi.com/)){ conf.mainHost = 'parentsconnect-q.mtvi.com'; }
    return conf;
} ();

/*document.domain = siteConfig.mainHost;*/
// TODO: this needs to be replaced with a server side fix so that the singup can talk to the parent frame
$(".closeButton").live('click', function(){
    window.location.reload();
});


var KIDS = KIDS?KIDS:{};

// This object is used to control subnav elements and associated events
// All bindings are held in navHandler.items and can be added through navHandler._addItem()
// items are Element / Child pairs that listen for when mouseout on both parent and child exist
var navHandler = {
	items: Array(),
	_addItem: function(parent, child) {
		if(typeof(parent) != 'object') { parent = document.getElementById(parent); }
		if(typeof(child) != 'object') { child = document.getElementById(child); }
		parent.onmouseover = function() { child.style.display = "block"; }
		parent.onmouseout = function() { child.style.display = "none"; }
		navHandler.items[parent] = child;
	},
	init: function() {
		//navHandler._addItem('chooseLoc', 'topCitiesCityList');
		navHandler._addItem('addSomething', 'addSomethingSub');
		navHandler._addItem('placesToGo', 'placesSub');
		navHandler._addItem('familyResources', 'familySub');
	}
}


/* expandables{}
** *************
*/
var expandables = {
	vars: {
		beginCollapsed: true,
		expandableLimitOne: true,
		animate:false,
		headerTag: 'div',
		expandableTag: 'ul',
		objClassName: 'expandable',
		headerClassName: 'expandController',
		expandableClassName: 'expandChild'
	},
	
	init: function() {
		var sandbox = document.getElementsByTagName("*");
		for(var x=0; x<sandbox.length; x++) {
			if(sandbox[x].className != null && sandbox[x].className != "") {
				if(sandbox[x].className.match(expandables.vars.objClassName)) {
					sandboxB = sandbox[x].getElementsByTagName("*");
					var handler = null;
					for(var i=0; i<sandboxB.length; i++) {
						if(sandboxB[i].className.match(expandables.vars.headerClassName)) {
							handler = sandboxB[i];
						}
					}
					if(handler == null) {
						try {
							handler = sandbox[x].getElementsByTagName(expandables.vars.headerTag).item(0);
						} catch(err) {}
					}
					if(handler != null && handler != "") {
						handler.style.cursor = "pointer";
						handler.onmouseover = function() { expandables.highlight(this, true); };
						handler.onmouseout = function() { expandables.highlight(this, false); };
						if(handler.onclick) {
							var oldOnclick = handler.onclick;
							handler.onclick = function() {
								oldOnclick();
								expandables.toggle(this);
							}
						} else {
							handler.onclick = function() { expandables.toggle(this); };
						}
						if(expandables.vars.beginCollapsed == true) {
							sandboxC = handler.parentNode.getElementsByTagName("*");
							for(var j=0; j<sandboxC.length; j++) {
								if(sandboxC[j].className.match(expandables.vars.expandableClassName)) {
									sandboxC[j].style.display = "none";
								}
							}
							try {
								handler.parentNode.getElementsByTagName(expandables.vars.expandableTag).item(0).style.display = "none";
							} catch(err) {}
						}
					}
				}
			}
		}
	},
	
	collapseAll: function() {
		var sandbox = document.getElementsByTagName("*");
		for(var x=0; x<sandbox.length; x++) {
			if(sandbox[x].className != null && sandbox[x].className != "") {
				if(sandbox[x].className.match(expandables.vars.objClassName)) {
					sandboxB = sandbox[x].getElementsByTagName("*");
					var handler = null;
					for(var i=0; i<sandboxB.length; i++) {
						if(sandboxB[i].className.match(expandables.vars.headerClassName)) {
							handler = sandboxB[i];
							handler.className = handler.className.replace(/OnState/, "");
							sandboxC = handler.parentNode.getElementsByTagName("*");
							var handlerB = null;
							for(var j=0; j<sandboxC.length; j++) {
								if(sandboxC[j].className.match(expandables.vars.expandableClassName)) {
									handlerB = sandboxC[j];
									handlerB.style.display = "none";
								}
							}
							if(handlerB == null) {
								handler.parentNode.getElementsByTagName(expandables.vars.expandableTag).item(0).style.display = "none";
							}
						}
					}
					if(handler == null) {
						try {
							handler = sandbox[x].getElementsByTagName(expandables.vars.headerTag).item(0);
							if(handler != null && handler != "") {
								handler.className = handler.className.replace(/OnState/, "");
								handler.parentNode.getElementsByTagName(expandables.vars.expandableTag).item(0).style.display = "none";
							}
						} catch(err) {}
					}
				}
			}
		}
	},
	
	toggle: function(myObj) {
		var handler = null;
		var workingObj = null;
		var oldState;
		var sandbox = myObj.parentNode.getElementsByTagName("*");
		for(var x=0; x<sandbox.length; x++) {
			if(sandbox[x].className.match(expandables.vars.expandableClassName)) {
				workingObj = sandbox[x];
				oldState = workingObj.style.display;
			}
		}
		if(workingObj == null) {
			try {
				workingObj = myObj.parentNode.getElementsByTagName(expandables.vars.expandableTag).item(0);
				oldState = workingObj.style.display;
			} catch(err) {}
		}
		
		if(expandables.vars.expandableLimitOne == true) {
			expandables.collapseAll();
		}
		if(oldState == "none" || oldState == null) {
			workingObj.style.display = "block";
			myObj.className += " OnState";
		} else {
			myObj.className = myObj.className.replace(/OnState/, "");
			workingObj.style.display = "none";
		}
	},
	
	highlight: function(thisObj, highlighted) {
		if(thisObj.className) {
			constructClass = thisObj.className + " Hover";
		} else {
			constructClass = "Hover";
		}
		if(highlighted == true) {
			thisObj.className = constructClass;
		}
		if(highlighted == false) {
			thisObj.className = thisObj.className.replace(/Hover/, "");
		}
	}
}



/* cookieHandler{}
** ***************
** Peter-Paul Koch
** http://www.quirksmode.org
*/
var cookieHandler = {
	create: function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	},
	
	read: function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	},
	
	remove: function(name) {
		cookieHandler.create(name,"",-1);
	}
}

function setCookie(cname, cvalue, cdays, domain) {
    var name = cname;
    var value = cvalue;
    var expire = null;
    var path = '/';

    if(typeof domain == 'undefined') {
	var domain = 'babynamesworld.parentsconnect.com';
    }
    if (cdays != null) {
	var expire = new Date();
	expire.setTime(expire.getTime() + (3600000 * 24 * cdays));
    }
    document.cookie = name + "=" + escape(value) + 
        ((expire == null) ? "" : "; expires=" + expire.toGMTString()) +
        ((path == null)   ? "" : "; path=" + path) +
        ((domain == null) ? "" : "; domain=" + domain);
        
    return true;
}

function cookieDomain() {
	return window.location.host.toString().substring(window.location.host.toString().indexOf('.'));
}


/* print_r()
** *********
** Michael White and Ben Bryan
** http://getsprink.com and http://kevin.vanzonneveld.net
*/
function print_r( array, return_val ) {    
    var output = "", pad_char = " ", pad_val = 4;
 
    var formatArray = function (obj, cur_depth, pad_val, pad_char) {
        if (cur_depth > 0) {
            cur_depth++;
        }
 
        var base_pad = repeat_char(pad_val*cur_depth, pad_char);
        var thick_pad = repeat_char(pad_val*(cur_depth+1), pad_char);
        var str = "";
 
        if (obj instanceof Array || obj instanceof Object) {
            str += "Array\n" + base_pad + "(\n";
            for (var key in obj) {
                if (obj[key] instanceof Array) {
                    str += thick_pad + "["+key+"] => "+formatArray(obj[key], cur_depth+1, pad_val, pad_char);
                } else {
                    str += thick_pad + "["+key+"] => " + obj[key] + "\n";
                }
            }
            str += base_pad + ")\n";
        } else if(obj == null || obj == undefined) {
            str = '';
        } else {
            str = obj.toString();
        }
 
        return str;
    };
 
    var repeat_char = function (len, pad_char) {
        var str = "";
        for(var i=0; i < len; i++) { 
            str += pad_char; 
        };
        return str;
    };
    output = formatArray(array, 0, pad_val, pad_char);
 
    if (return_val !== true) {
        document.write("<pre>" + output + "</pre>");
        return true;
    } else {
        return output;
    }
}


/* augment()
** *********
** Andre Lewis
** http://earthcode.com/blog/2006/01/optional_args.html
*/
function augment(oSelf, oOther) {
	if (oSelf == null) {
		oSelf = {};
	}
	for (var i = 1; i < arguments.length; i++) {
		var o = arguments[i];
		if (typeof(o) != 'undefined' && o != null) {
			for (var j in o) {
				oSelf[j] = o[j];
			}
		}
	}
	return oSelf;
}




/* prototyping collection
** **********************
*/

/* Array.exists() */
Array.prototype.exists = function (x) {
    for (var i=0; i<this.length; i++) {
        if (this[i] == x) return true;
    }
    return false;
}

/* String.normalize() */
String.prototype.normalize = function() {
	return this.toLowerCase().replace(/[^a-z]/g, "");
}

/* String.trim() */
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}


///* jQuery based onloader */
//$(document).ready(function() {
//	expandables.init();
//});

/* Preload loading graphic */
pic1 = new Image(16,16);
pic1.src="/images-pclocal/ajax-loader.gif"; 


$(window).load(function() {

	/* global search functionality */
	$("#top-nav-search #searchterm").focus(function(){
		if($(this).val()=="search"){$(this).val("");}
	});
	$("#top-nav-search #searchterm").blur(function(){
		if($(this).val()==""){$(this).val("search");}
	});
	

})

/*Get current year*/
function getCurrentYear() {
	return new Date().getFullYear();
}


function Set_Contest_Cookie( name, value, expires, path, domain, secure ) 
//i will eventually remove this function and use the pre-existing cookie functions
	{
	
	var today = new Date();
	var hours = today.getHours();
	var hoursLeftInDay = 23-hours;
	var minsLeftInHour = 60-today.getMinutes();
	var minsLeftInDay = hoursLeftInDay*60+minsLeftInHour;
	var millisecondsLeftInDay = minsLeftInDay * 60 *1000;
	var expires_date = new Date( today.getTime() + (millisecondsLeftInDay) );
	//value=millisecondsLeftInDay;
	
	document.cookie = name + "=" +escape( value ) +";expires=" + expires_date.toGMTString() + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
	}

function encode_utf8( s )
{
  return unescape( encodeURIComponent( s ) );
}

function decode_utf8( s )
{
  return decodeURIComponent( escape( s ) );
}

function splatRequest(){
	if(itemID){
	ajaxRequest('', '/modules/splat/ajaxSplat.jhtml?splattype=plain&itemID='+itemID, '', 'plainSplatResponse');
	}
}


/* Close Button Refresh on Signup */
window.addFluxCloseButtonRefreshLocal = function(){
	//This gets called from child iframes in order to make the flux close button also refresh the page.
	$(".closeButton").click(function(event){
		window.location.reload();
	});
}

/*
	Return days left until deadline date
*/
function retrunDeadline(deadLineDate) {
	/* this expects and deadLineDate in 2010-05-15 format */
	var ONE_DAY = 1000 * 60 * 60 * 24;
	var currentTime = new Date();
	var sp_deadline = deadLineDate.split('-');
	var ms_deadline = new Date();

	ms_deadline.setFullYear(parseInt(sp_deadline[0], 10), (parseInt(sp_deadline[1], 10)-1), parseInt(sp_deadline[2], 10) );

	// Calculate the difference in milliseconds
	var difference_ms = Math.abs(currentTime.getTime() - ms_deadline.getTime());

	// Convert back to days and return
	var daysBetween = Math.round(difference_ms/ONE_DAY);
	
	if ( !isNaN(daysBetween) && daysBetween != null){ return daysBetween; }
}	
function getQueryString(s){
	/* position zero is the ? character */
	var qs = location.search.substring(1);
	var pairs = qs.split( /\&/g );
	
	for ( var p = 0; p < pairs.length; ++p ){	
		/*notice we do NOT use /g here!  Only split on first = */
		var urlParam = pairs[p].split( /\=/ ); 
		if ( s == urlParam[0] ){	return urlParam[1];	}
	}
}
