jQuery.noConflict();
click_id = '';

// Document on load
jQuery(document).ready(function() 
{
    form_input_classes();
    form_labelize();

    jQuery('#updates').tabs({ selected: 2 });
    jQuery('#res-tabs-wrapp').tabs();
    jQuery('#cloud-content').tabs();

    jQuery('#hero-cycle').cycle({
        timeout: 8000,
        prev:   '#hero-prev', 
        next:   '#hero-next'
    });

    jQuery('#hero-pause').toggle(
        function() {jQuery('#hero-cycle').cycle('pause');},
        function() {jQuery('#hero-cycle').cycle('resume');}
    );

    var path = location.pathname.substring(1);
    if (path != '') {
      jQuery('#header-nav li a[href$="' + path + '"]').addClass('selected'); // check path as typed exactly
      jQuery('#header-nav li a[href$="' + path + '/"]').addClass('selected'); // check path with an extra trailing slash added
    }
    else {
       jQuery('#header-nav li:eq(0) a').addClass('selected'); // check home menu
    }

    jQuery('ul.sf-menu').superfish({
        pathClass: 'selected',
        autoArrows: false,
        dropShadows: false
    });

    if (click_id != undefined) setTimeout("jQuery('#"+click_id+"').trigger('click');",500);
});

function form_input_classes()
{
    jQuery('input[type="text"]').addClass('text');
    jQuery('input[type="password"]').addClass('text');
    jQuery('input[type="checkbox"]').addClass('checkbox');
    jQuery('input[type="radio"]').addClass('radiobutton');
    jQuery('input[type="submit"]').addClass('submit');
    jQuery('input[type="image"]').addClass('buttonImage');
}

function form_labelize(){  jQuery(".labelize input:text").clearingInput(); }   

function automatic_overlay(cid) { if (jQuery.cookie("overlay_"+cid) != '1') click_id = cid; } 

// Donate form remake
var donateTable = {
    table1: 'contribtable1',
    table2: 'contribtable2',
    table3: 'contribtable3',
    remake: function(ver,def_amount) {    
        if (jQuery("input#processbutton").length ==  0) 
        { 
            // on thank you page hide "your deails are secure...", lead text on second step, donate options (ver B), authorize.net badge
            jQuery('a#details').hide(); 
            jQuery('#campaign-lead').hide(); 
            jQuery('#donate-types').hide();
            jQuery('.AuthorizeNetSeal').hide(); 
        } 
        else 
        {   
            var table = jQuery('form#contribution table').eq(0);       				                
            var tr = table.find('tr').eq(0);
            var tds = tr.find('td.contribcolumn');
						
            var table1 = tds.eq(0).find('table').eq(0); // address
                table1.addClass(this.table1);
            var table2 = tds.eq(2).find('table').eq(0); // amount and cc data
                table2.addClass(this.table2);
												    
            var tr2 = tr.next();				
            var tr3 = tr2.next();
						
            if (tr3.length !=  0) {					
                var td = tr2.find('td').eq(0);
                var table3 = td.find('table').eq(0); // recurring field
                table3.addClass(this.table3);
            }				
															
            // create new one column table wit custom submit button and delete the old one
            table.before(table1).before(table2).before(table3).before('<input type="image" id="submit-btn" name="submit-btn" src="/page/-/img/btn_donate.png">');						
            table.remove();
						
            // state/region/province -> state
            jQuery("[name='state_cd']").parent().find("label").html('state');						

            // remove second address line
            jQuery('#addr2').parent().parent().remove();						
						
            // remove err spans
            jQuery('span.error').next().remove();
            jQuery('span.error').remove();						

            // set amount
            var amount = gup('amount');
            jQuery('table.amounts input[value="'+amount+'"]').attr('checked','checked').click();
						
            // tick default 
            def_amount = def_amount == undefined || !def_amount? 25 : def_amount;
            if ( ! jQuery("input[name='amount']").is(':checked') ) jQuery('table.amounts input[value="'+def_amount+'"]').attr('checked', 'checked').click();						
						
            if (ver == 'a' || ver == undefined)
            {
                // move last name field bellow first name
                var input_ln = jQuery("input[name='lastname']");
                var tr_ls = jQuery(document.createElement('tr'));
                input_ln.parents('tr').eq(0).after(tr_ls);
                tr_ls.html(input_ln.parent());

                // add nbsp in label before address2 input
                //var input_addr2 = jQuery("input[name='addr2']");
                //input_addr2.parent().find('label').html('&nbsp;'); 
            }
            else if (ver == 'b')
            {
                // move state next to country and both after the city
                var td_st = jQuery('#state_cd').parent();
                    td_st.parent().addClass('tbd');
                jQuery('#country_table').find('tr').find('td').after(td_st);
																								    															
                // move zip next to city
                var td_zp = jQuery('#zip').parent();
                    td_zp.parent().addClass('tbd');
                jQuery('#city').parent().after(td_zp);
								
                // move country + state bellow the city								
                var tr_cs = jQuery('#country_table').parent().parent();
                td_zp.parent().after(tr_cs);
								
                jQuery('.tbd').remove();
																	
                // move expiration date in next line
                var tr_cn = jQuery('table#payment_options').find('tr').eq(0);				    
                var tr_ed = tr_cn.clone(true);
				
                tr_ed.find('td').eq(1).remove();
                tr_cn.find('td').eq(0).remove();
                tr_cn.before(tr_ed);								
								
                // recurring button move in front of custom Text
                var in_ra = jQuery('#recurring_acknowledge');
                jQuery('.contribtable3').find('tr').eq(1).find('td').find('div').prepend('&nbsp;').prepend(in_ra);
                jQuery('.contribtable3').find('tr').eq(2).remove();

                // add text bellow amounts
                jQuery('.amounts').after('<span style="font-size:11px">Donations are charged in the equivalent amount in your local currency.</span>');
            }
        }
    }
}

// Signup form remake
var signupTable = {
    remake: function() {
        if (jQuery("input[name='submit-btn']").length ==  0) {jQuery('a#details').hide();} // on thank you page hide "your deails are secure..."
        jQuery("input[name='firstname']").parent().parent().parent().parent().parent().parent().parent().parent().after('<tr id="clonetr"></tr>');
        jQuery("input[name='lastname']").parent().parent().parent().clone().appendTo('#clonetr');
        jQuery("input[name='lastname']:first").parent().parent().parent().remove();
        //jQuery("input[name='addr2']").before('<label></label>');
        //jQuery("[name='state_cd']").parent().parent().find("label").html(jQuery("[name='state_cd']").parent().parent().find("label").html().replace("/R","/ R"));
        jQuery("input[name='submit-btn']").replaceWith('<input type="image" id="submit-btn" name="submit-btn" src="/page/-/img/contact_btn_send.png">');
        jQuery("span.signuperror").html('Please fill in the required fields below');
        if (gup('email') != '') setTimeout('jQuery("input#email").val(decodeURIComponent(gup("email")))',500); // read get parameter - email
        if (gup('country') != '') setTimeout('jQuery("select#country").val(gup("country"))',500); // read get parameter - country
    }
}

// Contact form remake
var contactTable = {
    remake: function() {              
        if (jQuery("input[name='submit-btn']").length ==  0) { jQuery('a#details').hide(); jQuery('#quote-link').html(''); } // on thank you page hide "your deails are secure..." and delete "We want to hear from you"
        jQuery("input[name='submit-btn']").replaceWith('<input type="image" id="submit-btn" name="submit-btn" src="/page/-/img/contact_btn_send.png">');
    }
}  

// Campaign form remake
var campaignTable = {
    remake: function(button, lang) {              
        if (button == 'Vote Now') button = 'btn_vote_now.png';
        else if (button == 'Send') button = 'btn_send.png';
        else if (button == 'Sign the petition (Arabic)') button = 'btn_sign_arabic.png';
        else if (button == 'Send (flat)' && lang == 'bp') button = 'btn_send_flat_bp.png';
        else if (button == 'Send (flat)') button = 'btn_send_flat.png';
        else button = 'btn_sign.png';
        if (jQuery("input[name='submit-btn']").length ==  0) {jQuery('a#details').hide();} // on thank you page hide "your deails are secure..."
        jQuery("input[name='firstname']","#signup").parent().parent().parent().parent().parent().parent().parent().parent().after('<tr id="clonetr"></tr>');
        jQuery("input[name='lastname']","#signup").parent().parent().parent().clone().appendTo('#clonetr');
        jQuery("input[name='lastname']:first","#signup").parent().parent().parent().remove();
        //jQuery("[name='state_cd']").parent().parent().find("label").html(jQuery("[name='state_cd']").parent().parent().find("label").html().replace("/R","/ R"));        
        jQuery("input[name='submit-btn']").replaceWith('<input type="image" id="submit-btn" name="submit-btn" src="/page/-/img/'+button+'">');
        jQuery('#tab-campaign').click();  
        if (button == 'btn_send_flat.png' || button == 'btn_send_flat_bp.png') { // v2
            jQuery('#signupheader').next().remove();
            jQuery('#signupheader').prependTo('#bsd-form');
            if (jQuery('#bsd-form.noquote').length == 0) jQuery('#signupheader').prepend('<i class="quote"></i>');
        }
    }
}

// Your Campaign form remake
var yourcampaignTable = {
    remake: function() {
        button = 'btn_send_flat.png';
        if (jQuery("input[name='submit-btn']").length ==  0) {jQuery('a#details').hide();} // on thank you page hide "your deails are secure..."
        jQuery("#signupheader").next().remove();
        jQuery("#signupheader").remove();
        jQuery("#campaignb #bsd-form label, #campaignb #bsd-form textarea, #campaignb #bsd-form input").css('width','340px').css('margin-top','3px');
        jQuery("#campaignb #bsd-form select").css('width','352px');
        jQuery("input[name='submit-btn']").replaceWith('<input type="image" id="submit-btn" name="submit-btn" src="/page/-/img/'+button+'">')
        jQuery("#campaignb #bsd-form td#required_note").css('padding-left','0px');
        jQuery("#campaignb #bsd-form a#details").css('margin-left','0px');
    }
}  

// Invite form remake
var inviteTable = {
    remake: function(ver) {
        if (ver == 'ol') {
            jQuery('#bsd-form p').first().remove();
            jQuery('.bsd-shareButtons-wrap').parent().parent().remove();
            jQuery('.bsd-required-text').remove();														
            jQuery('#invite_table').parent().parent().find('label').html('<span class="bsd-required-asterisk">*</span>Send Email To:');
            jQuery('#bsd-form div').eq(0).addClass('left-col');									
            jQuery('.left-col').after('<div class="right-col"><table></table></div>');
            jQuery('.right-col table').append(jQuery('.left-col tr').eq(4).remove());
            jQuery('.right-col table').append(jQuery('.left-col tr').eq(4).remove());
            jQuery('.right-col tr').eq(0).find('td').eq(1).attr('valign','bottom');
            jQuery('.left-col tr').eq(5).find('td').eq(1).attr('colspan','2').prev().remove();
            jQuery("input[name='submit_button']").replaceWith('<input type="image" id="submit-btn" name="submit_button" src="/page/-/img/btn_send_flat.png">');
        }
        else {								    	
            if (jQuery("input[name='submit_button']").length ==  0) { jQuery('a#details').hide(); jQuery('#campaign-lead').hide(); } // on thank you page hide "your details are..." and campaign lead
            if (gup('no_ty') == 1) {jQuery(".thank-you").hide();}
            jQuery('td.field:eq(4)').css('padding-top','18px');
            jQuery('td.field:eq(5)').css('padding-top','18px');
            jQuery('.bsd-shareButtons-wrap').parent().parent().find('td').css('padding','0');
            jQuery('#campaign-content .Apple-style-span:first').hide();
            jQuery("input[name='submit_button']").replaceWith('<input type="image" id="submit-btn-invite" name="submit_button" src="/page/-/img/contact_btn_send.png">');
        }
    } 
}

// Overlay signup form remake
var overlaySignupTable = {
    remake: function() {
        if (jQuery("input[name='submit-btn']").length ==  0) {jQuery('a#details').hide();} // on thank you page hide "your deails are secure..."
        jQuery("input[name='firstname']").parent().parent().parent().parent().parent().parent().parent().parent().after('<tr id="clonetr"></tr>');
        jQuery("input[name='lastname']").parent().parent().parent().clone().appendTo('#clonetr');
        jQuery("input[name='lastname']:first").parent().parent().parent().remove();
        //jQuery("input[name='addr2']").before('<label></label>');
        //jQuery("[name='state_cd']").parent().parent().find("label").html(jQuery("[name='state_cd']").parent().parent().find("label").html().replace("/R","/ R"));
        jQuery("input[name='submit-btn']").replaceWith('<input type="image" id="submit-btn" name="submit-btn" src="/page/-/img/btn_send.png">');
        jQuery("span.signuperror").html('Please fill in the required fields below');
        if (gup('email') != '') setTimeout('jQuery("input#email").val(decodeURIComponent(gup("email")))',500); // read get parameter - email
        if (gup('country') != '') setTimeout('jQuery("select#country").val(gup("country"))',500); // read get parameter - country
    }
}

// Speakout form remake
var speakoutTable = {
    remake: function() {              
        //var recipients = '';
        //jQuery("#recipient_table td.radio","#speakout_form").each(function(i) { recipients+=''+jQuery(this).html()+'&nbsp;&nbsp;&nbsp;'; if (i==1 || i==3) recipients+='<br />'; if (i>0) jQuery(this).parent().remove(); });
        //jQuery("#recipient_table td.radio","#speakout_form").html(recipients);
    }
} 

// Retrieve signup counter
function count_signups(form_ids, goal)
{
    form_ids        = form_ids.split(',');
    var count_forms = form_ids.length;
    var count_no    = 0;
    var count_sum   = 0;
				   
    jQuery('#singup_goal').html(numberFormat(goal));
		
    function load_counter(data){
        count_no++;
	count_sum+=parseInt(data);						
        if (count_no == count_forms) {		
	    jQuery('.members-white-txt').css('display','block');
            jQuery('.members-black-txt').css('display','block');
            jQuery('#campaign-meter').show();
            jQuery('#signup_counter').css('display','block').attr('count',count_sum).attr('curr','0').html('0');
            setTimeout("animate_number('signup_counter'," + (count_sum/60) + ");",1);
            jQuery("#campaign-meter-background").animate({width:count_percent(count_sum,goal)+"%"}, 4600, 'swing');
        }
    }
        
    function count_percent(count,goal) {
        percent = Math.round(100/parseInt(goal)*parseInt(count));
        return percent > 100 ? 100 : percent;
    }

    for (i = 0; i < count_forms; i++) {
        jQuery.get("/utils/cons_counter/signup_counter.ajax.php?signup_form_id="+form_ids[i], load_counter); 				
    }              
}

function animate_number(elmid, step) {    
    var curr 	= parseInt(jQuery('#'+elmid).attr('curr')) + step; 
    var count = parseInt(jQuery('#'+elmid).attr('count'));
    if (curr <= count) {
        jQuery('#'+elmid).attr('curr',curr).html(numberFormat(Math.round(curr)));
        setTimeout("animate_number('"+elmid+"',"+step+");",100);
    }
    else {jQuery('#'+elmid).attr('curr',curr).html(numberFormat(count));}
}

// Signup Counter		    										    								
function signupCounterLoad(form_ids,goal)
{
    var form_ids    = form_ids.split(',');
    var count_forms = form_ids.length;
    var count_no    = 0;
    var count_sum   = 0;
				
    jQuery('#campaign-meter-goal').html(numberFormat(goal));
    jQuery('#singup_goal').html(numberFormat(goal));
    														
    function loadCount(data) {
        count_no++;
        count_sum+=parseInt(data);		
				
        if (count_no == count_forms) 
        {								            
            jQuery('#signup_counter').html(numberFormat(count_sum));												            
            var ttl_total    = count_sum;
            var bar_percent  = getPercent(count_sum,goal);
            var bar_total    = (bar_percent * 404 / 100);
        												            												            
            // Start Animation
            signupCounterAnimate(ttl_total,bar_total,0);
        }
    }
    												   												
    for (i = 0; i < count_forms; i++) {
        jQuery.get("/utils/cons_counter/signup_counter.ajax.php?signup_form_id="+form_ids[i], loadCount); 		
    }
}		

// Animate Signup Counter
function signupCounterAnimate(ttl_total,bar_total,step_curr) 
{      
    var steps = 100;
    var speed = 40;
    var easing = 0.4;
		
    step_curr++;
				
    var signup_ttl = easeInOut(0,ttl_total,steps,step_curr,easing);
    var signup_bar = easeInOut(0,bar_total,steps,step_curr,easing);
  
    if (signup_ttl <= ttl_total)
    {							    													    			
    	  jQuery('#campaign-meter-ttl').html(numberFormat(Math.round(signup_ttl)));
	      jQuery('#campaign-meter-bar').css('width',signup_bar);
	  
	      if (parseInt(jQuery('#campaign-meter-ttl').css('right')) != 10) {
	          ttl_width = jQuery('#campaign-meter-ttl').css('width');
	          bar_width = jQuery('#campaign-meter-bar').css('width');
	          if (parseInt(bar_width) > parseInt(ttl_width) + 20) jQuery('#campaign-meter-ttl').css('right','10px');
	      }		
	      
	      setTimeout("signupCounterAnimate("+ttl_total+","+bar_total+","+step_curr+");",speed);
    }
    else {jQuery('#campaign-meter-ttl').html(numberFormat(ttl_total));}
}			

//Generic Animation Step Value Generator By www.hesido.com 					
function easeInOut(minValue,maxValue,totalSteps,actualStep,powr) {     
    var delta = maxValue - minValue; 
    var stepp = minValue+(Math.pow(((1 / totalSteps) * actualStep), powr) * delta); 
    return Math.ceil(stepp) 
} 													

// Return share percantage		
function getPercent(share,overall) {
    percent = Math.round(100/parseInt(overall)*parseInt(share));
    return percent > 100 ? 100 : percent;
}															
													    																			
// This function formats numbers by adding commas
function numberFormat(nStr){
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1))
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    return x1 + x2;
}

// Get URL parameter
function gup( name )
{
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regexS = "[\\?&]"+name+"=([^&#]*)";  
    var regex = new RegExp( regexS );  
    var results = regex.exec( jQuery("<div/>").text(window.location.href).html() );  
    if( results == null ) return "";  
    else return results[1];
}

// Validate email
function email_validate(value)
{
    return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(value);		
}