﻿// JScript File
jQuery.fn.wordCount = function(params,flag){

	var p = {
		counterElement:"display_count",
		maxAllowed:0
	};
	
	var total_words;
	var remaining_words;
	var oldfunc;
	
	oldfunc = this.onkeypress || function(){};
	
	if(params) {
		jQuery.extend(p, params);
	}
    if(flag==1)
    {
       
        if (this.val().length == 0) {
            total_words = 0;
        } else {
            total_words = this.val().split(/[\s\.\?]+/).length;
        }
	}
	else
	{
	 if (this.val().length == 0) {
            total_words = 0;
        }
        else
        {
	     total_words=this.val().length;
	    }
	
	}
	
	remaining_words=p.maxAllowed - total_words;
	jQuery('#'+p.counterElement).html(remaining_words);
   
    function jq_wc(edt) {
      if(flag==1)
	  {
        if (edt.value.length == 0) {
            total_words = 0;
        } else {
            total_words = edt.value.split(/[\s\.\?]+/).length;
        }
	  }
	  else
	  {
	  if (edt.value.length == 0) {
            total_words = 0;
        } else {
	    total_words=edt.value.length;
	    }
	  }
      
        remaining_words = p.maxAllowed-total_words;
        
         
		jQuery('#'+p.counterElement).html(remaining_words);
        if(p.maxAllowed > 0 && total_words >= p.maxAllowed) {
		    return false;
		}
		
    }
   
	//for each keypress function on text areas
	this.keypress(function()
	{
	    oldfunc();
	    jq_wc(this);
	    
	     if(p.maxAllowed > 0 && total_words >= p.maxAllowed) {
		    return false;
		}
	});
};



jQuery.fn.popupwindow = function(p)
{

	var profiles = p || {};

	return this.each(function(index){
		var settings, parameters, mysettings, b, a;
		
		// for overrideing the default settings
		mysettings = (jQuery(this).attr("rel") || "").split(",");

		
		settings = {
			height:600, // sets the height in pixels of the window.
			width:600, // sets the width in pixels of the window.
			toolbar:0, // determines whether a toolbar (includes the forward and back buttons) is displayed {1 (YES) or 0 (NO)}.
			scrollbars:0, // determines whether scrollbars appear on the window {1 (YES) or 0 (NO)}.
			status:0, // whether a status line appears at the bottom of the window {1 (YES) or 0 (NO)}.
			resizable:1, // whether the window can be resized {1 (YES) or 0 (NO)}. Can also be overloaded using resizable.
			left:0, // left position when the window appears.
			top:0, // top position when the window appears.
			center:0, // should we center the window? {1 (YES) or 0 (NO)}. overrides top and left
			createnew:1, // should we create a new window for each occurance {1 (YES) or 0 (NO)}.
			location:0, // determines whether the address bar is displayed {1 (YES) or 0 (NO)}.
			menubar:0 // determines whether the menu bar is displayed {1 (YES) or 0 (NO)}.
		};

		// if mysettings length is 1 and not a value pair then assume it is a profile declaration
		// and see if the profile settings exists

		if(mysettings.length == 1 && mysettings[0].split(":").length == 1)
		{
			a = mysettings[0];
			// see if a profile has been defined
			if(typeof profiles[a] != "undefined")
			{
				settings = jQuery.extend(settings, profiles[a]);
			}
		}
		else
		{
			// overrides the settings with parameter passed in using the rel tag.
			for(var i=0; i < mysettings.length; i++)
			{
				b = mysettings[i].split(":");
				if(typeof settings[b[0]] != "undefined" && b.length == 2)
				{
					settings[b[0]] = b[1];
				}
			}
		}

		// center the window
		if (settings.center == 1)
		{
			settings.top = (screen.height-(settings.height + 110))/2;
			settings.left = (screen.width-settings.width)/2;
		}
		
		parameters = "location=" + settings.location + ",menubar=" + settings.menubar + ",height=" + settings.height + ",width=" + settings.width + ",toolbar=" + settings.toolbar + ",scrollbars=" + settings.scrollbars  + ",status=" + settings.status + ",resizable=" + settings.resizable + ",left=" + settings.left  + ",screenX=" + settings.left + ",top=" + settings.top  + ",screenY=" + settings.top;
		
		jQuery(this).bind("click", function(){
			var name = settings.createnew ? "PopUpWindow" + index : "PopUpWindow";
			window.open(this.href, name, parameters).focus();
			return false;
		});
	});

};

jQuery.fn.validateMultipleEmail = function()
{
    var email_ids;
    var iCounter = 0;
    if(this.value == undefined) {
        return false;
    }
    email_ids = (jQuery(this).attr("value") || "").split(",");
    for(iCounter=0; iCounter < email_ids.length; iCounter++) {
        if(!email_ids[iCounter].validateEmail) {
            return false;
        }
    }
}

jQuery.fn.validateEmail = function(email)
{
    
    reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    return reg.test(email)
}