window.addEvent('domready', function(){
	if ($$('.tgm_col').length > 1) {
		var eq_col = new Equalizer($$('.tgm_col'));
	}
    var eq_col2 = new Equalizer($$('.home_eq_content'));
});

window.onload = function(){
	
}
/****************************************
 * SHELL SCRIPTS
 ****************************************/
var Equalizer = new Class({
    elements: [],
    height: 0,
    
    initialize: function(elements){
        this.elements = $$(elements);
        $$(this.elements).each(function(el){
            el.setStyle('height', 'auto');
        });
        this.calculateHeight();
        
        if (this.height > 0) {
            this.resizeElements();
        }
    },
    
    calculateHeight: function(){
        $$(this.elements).each(function(el){
            //console.log(el.getHeight())
            if (el.offsetHeight > this.height) {
                this.height = el.offsetHeight;
            }
        }, this);
    },
    
    resizeElements: function(){
        $$(this.elements).each(function(el){
        
            el.setStyles({
                'height': this.height + 'px'
            });
        }, this);
    }
});



/*********************
 * JUMP MENUS
 **********************/
function jumpMenu(targ, selObj, restore){ //v3.0
    eval(targ + ".location='" + selObj.options[selObj.selectedIndex].value + "'");
    if (restore) 
        selObj.selectedIndex = 0;
}

/*************************
 * AJAX
 **************************/
/*NEWSLETTER SIGNUP*/
window.addEvent('domready', function(){
    /*
	$('newsletteremail').onfocus = function(){
        if (this.value == "Enter Your E-Mail Address...") {
            this.value = "";
        }
    }
    $('newsletter_signup').addEvent('submit', function(e){
        new Event(e).stop();
        var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
        
        if (filter.test($('newsletteremail').value)) {
            $('newsletter_signup_errors').innerHTML = "";
            $('email_newsletter_submit').src = "/i/shell/ajax_load_spin.gif";
            this.send({
                onComplete: function(data){
                    $('email_newsletter_submit').src = "/i/shell/btn_go_sm.gif";
                    //alert(data);
                }
            });
        }
        else {
            $('newsletter_signup_errors').innerHTML = "<h4>Please Enter A Valid Email Address</h4>";
        }
    });
    */
});

/***************************
 ******** FACETIME **********
 ****************************/
var showFaceTimeVideo = function(diamond_winner, agency, campaign_text, video_url, agency_profile, campaign_profile, agency_id, campaign_id, video_title, video_id){
    $('video_display').setStyle("display", "block");
    
    ft_v = null;
    var ft_v = new SWFObject("/flash/mediaplayer.swf", "facetimeplayer", "500", "300", "7");
    ft_v.addParam("allowfullscreen", "true");
    ft_v.addParam("allowscriptaccess", "always");
    ft_v.addVariable("width", "500");
    ft_v.addVariable("height", "300");
    ft_v.addVariable("autostart", "true");
    ft_v.addVariable("enablejs", "true");
    ft_v.addVariable("overstretch", "true");
    ft_v.addVariable("javascriptid", "facetimeplayer");
    ft_v.write("facetime_video_container");
    window.scroll(0, 200);
    //if(diamond_winner){$('diamond_winner_emblem').setStyle("display","block")}else{$('diamond_winner_emblem').setStyle("display","none")}
    
    if (agency_id != '' && agency_id != -1) {
        $('view_agency_profile').setHTML("View More Agencies Like This");
        $('view_agency_profile').href = "/marketing-agencies/marketing-agency-by-id.php?id=" + agency_id;
    }
    else {
        $('view_agency_profile').setHTML("View Other Agency Profiles")
        $('view_agency_profile').href = "/marketing-agencies/";
    }
    $('facetime_layer_agency').innerHTML = agency;
    $('facetime_layer_campaign').innerHTML = campaign_text;
    
    if (campaign_id == '') {
        $('view_case_link').innerHTML = "View More Case Studies Like This";
        $('view_case_link').href = "http://www.theglobalmarketer.com/app/unrestricted/search?offset=0&action=search&keyword=" + encodeURIComponent(video_title) + "&searchBtn=Search+%3E%3E&category=&strategy=&objective=&device=";
    }
    else {
        $('view_case_link').href = "http://www.theglobalmarketer.com/unrestricted/AbstractView.jsp?eid=6W6ZdS6VIPs.&action=searchscroll&idx=3&searchBtn=Search+%3E%3E&device=&keyword=Huggies+Jeans+Store&category=&strategy=&offset=0&objective=";
    }
    
    location.href = "#video_display";
    
    new Ajax("v.php", {
        data: "i=" + video_id,
        method: 'post'
    }).request();
    
    
    /* IE BUGGGGGS */
    
    var loadtimeout = setTimeout(function(){
        $('facetime_layer_agency').setHTML(agency);
        $('facetime_layer_campaign').setHTML(campaign_text);
    }, 2);
    var loadtimeout = setTimeout(function(){
        loadVideoFile('facetimeplayer', {
            file: video_url
        });
        thisMovie('facetimeplayer').sendEvent('play')
    }, 2000);
    
}

var hideFacetimeVideo = function(){
    $('facetime_video_container').setHTML("");
    $('facetime_video_layer').setStyle("display", "none");
    $('facetime_blackout').setStyle("display", "none");
}
var hideFacetimeVideoDisplay = function(){
    $('facetime_video_container').setHTML("");
    $('video_display').setStyle("display", "none");
}

/****************************************
 ********** VIDEO PLAYER FUNCTIONS ******
 *****************************************/
function sendEvent(typ, prm){
    thisMovie('facetimeplayer').sendEvent(typ, prm);
};
function getUpdate(typ, pr1, pr2, pid){
    if (type == "item") {
        currentItem = pr1;
    }
};
// This is a javascript handler for the player and is always needed.
function thisMovie(movieName){
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    }
    else {
        return document[movieName];
    }
};
function loadVideoFile(swf, obj){
    thisMovie(swf).loadFile(obj);
}


/*************** 
 CRAPPY, UNORGANIZED, OLD FUNCTIONS
 *****************/
function writeDate(){
    var MONTH_NAMES = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
    var DAY_NAMES = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
    var THE_DATE = new Date();
    
    document.write(DAY_NAMES[THE_DATE.getDay()] + ", " + MONTH_NAMES[THE_DATE.getMonth()] + " " + THE_DATE.getDate() + ", " + THE_DATE.getFullYear());
}

function MM_jumpMenu(targ, selObj, restore){ //v3.0
    eval(targ + ".location='" + selObj.options[selObj.selectedIndex].value + "'");
    if (restore) 
        selObj.selectedIndex = 0;
}


function removeString(object){
    if (object.value == "") 
        object.value = "0";
    var a = object.value.split("");
    var b = "";
    for (var i in a) 
        if (a[i].match(/\d/)) 
            b += a[i];
    while (b.length > 1 && b.charAt(0) == "0") 
        b = b.substr(1, b.length);
    object.value = b;
}

function popUp(URL){
    day = new Date();
    id = day.getTime();
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=650,left = 570,top = 250');");
}

function popUpWH(URL, w, h){
    day = new Date();
    id = day.getTime();
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=" + w + ",height=" + h + "');");
}








var scRunning = false;
function toSentenceCase(target){

    // This script de-capitalizes proper nouns so only run it if it's obvious
    // that you need to.  If you do want the script to run no matter what,
    // changing tooManyCaps to a 1 should do it.
    var tooManyCaps = 20;
    
    var re = new RegExp("([^a-z]{" + tooManyCaps + ",})");
    var m;
    var compileString = "";
    
    // if there are too many caps (i.e., a series of non-lowercase chars), then
    // convert to sentence case
    if (target.match(re) != null || scRunning) {
    
        // continue to sentence case if used runtime
        scRunning = false;
        
        // make the whole thing little then capitalize the first character.
        target = target.toLowerCase();
        target = target.substr(0, 1).toUpperCase() + target.substring(1, target.length);
        
        // this regex matches the end of a sentence or a new line, followed by 0 or more
        // white space chars and one and only one lower case character.
        re = new RegExp("([\\.\\?!\\r\\n]+[\\s]*)([a-z]{1,1})");
        
        // for each match, replace the last char with its ucase version
        while (m = re.exec(target)) {
            target = target.substr(0, m.index) +
            m[1] +
            m[2].toUpperCase() +
            target.substr(m.index + m[0].length);
        }
        
        // this regex matches I words (i.e., I, I'd, I'll, etc.) to recapitalize them.
        // It just seemed like the right thing to do.
        re = new RegExp("([^\\w]i([^\\w]|'))");
        
        // for each match, recap the i
        while (m = re.exec(target)) {
            compileString += target.substr(0, m.index) + m[1].toUpperCase();
            target = target.substr(m.index + m[1].length);
        }
    }
    return compileString + target;
}


var bCancel = false;

function validateFreeMemberRegForm(form){
    if (bCancel) 
        return true;
    else 
        return validateRequired(form) && validateEmail(form);
}

function required(){
    this.aa = new Array("email", "Please enter your email address", new Function("varName", " return this[varName];"));
    this.ab = new Array("password", "Please enter your password", new Function("varName", " return this[varName];"));
    this.ac = new Array("password2", "Please enter your password again", new Function("varName", " return this[varName];"));
    this.ad = new Array("first_name", "Please enter your first name", new Function("varName", " return this[varName];"));
}

function email(){
    this.aa = new Array("email", "Please enter your email address", new Function("varName", " return this[varName];"));
}

function validateRequired(form){
    var isValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oRequired = new required();
    for (x in oRequired) {
        var field = form[oRequired[x][0]];
        
        if (field.type == 'text' ||
        field.type == 'textarea' ||
        field.type == 'file' ||
        field.type == 'select-one' ||
        field.type == 'select-multiple' ||
        field.type == 'radio' ||
        field.type == 'password') {
        
            var value = '';
            // get field's value
            if (field.type == "select-one" || field.type == "select-multiple") {
                var si = field.selectedIndex;
                if (si >= 0) {
                    value = field.options[si].value;
                }
            }
            else {
                if (field.type == "radio") {
                    for (var i = 0; i < field.length; i++) {
                        if (field[i].checked) {
                            value = field[i].value;
                        }
                    }
                }
                else {
                    value = field.value;
                }
            }
            
            if (trim(value).length == 0) {
            
                if (i == 0) {
                    focusField = field;
                }
                fields[i++] = oRequired[x][1];
                isValid = false;
            }
        }
    }
    if (fields.length > 0) {
        focusField.focus();
        alert(fields.join('\n'));
    }
    return isValid;
}

// Trim whitespace from left and right sides of s.
function trim(s){
    return s.replace(/^\s*/, "").replace(/\s*$/, "");
}

function validateEmail(form){
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oEmail = new email();
    for (x in oEmail) {
        if ((form[oEmail[x][0]].type == 'text' ||
        form[oEmail[x][0]].type == 'textarea') &&
        (form[oEmail[x][0]].value.length > 0)) {
            if (!checkEmail(form[oEmail[x][0]].value)) {
                if (i == 0) {
                    focusField = form[oEmail[x][0]];
                }
                fields[i++] = oEmail[x][1];
                bValid = false;
            }
        }
    }
    if (fields.length > 0) {
        focusField.focus();
        alert(fields.join('\n'));
    }
    return bValid;
}

/**
 * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
 * http://javascript.internet.com
 */
function checkEmail(emailStr){
    if (emailStr.length == 0) {
        return true;
    }
    var emailPat = /^(.+)@(.+)$/;
    var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
    var validChars = "\[^\\s" + specialChars + "\]";
    var quotedUser = "(\"[^\"]*\")";
    var ipDomainPat = /^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
    var atom = validChars + '+';
    var word = "(" + atom + "|" + quotedUser + ")";
    var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");
    var matchArray = emailStr.match(emailPat);
    if (matchArray == null) {
        return false;
    }
    var user = matchArray[1];
    var domain = matchArray[2];
    if (user.match(userPat) == null) {
        return false;
    }
    var IPArray = domain.match(ipDomainPat);
    if (IPArray != null) {
        for (var i = 1; i <= 4; i++) {
            if (IPArray[i] > 255) {
                return false;
            }
        }
        return true;
    }
    var domainArray = domain.match(domainPat);
    if (domainArray == null) {
        return false;
    }
    var atomPat = new RegExp(atom, "g");
    var domArr = domain.match(atomPat);
    var len = domArr.length;
    if ((domArr[domArr.length - 1].length < 2) ||
    (domArr[domArr.length - 1].length > 3)) {
        return false;
    }
    if (len < 2) {
        return false;
    }
    return true;
}

/*********************
 * PAGES
 * ********************/
var setup_home = function(){
	$('home_main_search_bottom_a').addEvent('click', function(){ showAdvancedSearch() })
	$('home_search_searchterm').addEvent('focus', function(){ this.setStyle('background-position','0 -100px') });
	$('home_search_searchterm').addEvent('blur', function(){ 
		if(this.value == ""){
			this.setStyle("background-position","0 15px")
		}
	});

	if($('home_search_searchterm').value != ""){
		$('home_search_searchterm').setStyle("background-position","0 150px")
	}
	
		
	var homeBrandsUpdate = setInterval(function(){
		var homeBrands = new Ajax('/inc/chunks/brands_home_cloud.php', {
				method: 'get',
				onComplete: function(data){
					$('home_brands_wrap').setStyle('opacity', 0);
					$('home_brand_samples').setHTML(data);
					var myFx2 = new Fx.Style('home_brands_wrap', 'opacity', {
						onComplete: function(){
						}
					}).start(0, 1);
				}
			}).request();
	},5000);
}

var aSearchOpen = false;
var showAdvancedSearch = function(){
	if(aSearchOpen){
		aSearchOpen = false;
		$('home_main_search_advanced').setStyle('display','none');
		$("home_main_search_bottom_a").setStyle('background', 'transparent');
		$('home_main_search_body').effect('height', {duration: 1000, transition: Fx.Transitions.Sine.easeOut, onComplete:function(){
			$("home_main_search").setStyle('height', '265px');
		}}).start(105);
		$('home_search_submit').effect('top', {duration: 1000, transition: Fx.Transitions.Sine.easeOut }).start("80px");
	}else{ 
		aSearchOpen = true;
		$('home_main_search_advanced').setStyle('display','block');
		$("home_main_search").setStyle('height', 'auto');
		$("home_main_search_bottom_a").setStyle('background', 'url(/i/shell/bg_close_adv_search.png) no-repeat top left');
		$('home_main_search_body').effect('height', {duration: 1000, transition: Fx.Transitions.Sine.easeOut, onComplete:function(){
		}}).start(300);
		$('home_search_submit').effect('top', {duration: 1000, transition: Fx.Transitions.Sine.easeOut }).start("260px");
	} 
}
 