// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function assign_display_order(this_class) {
	i = 0;
	$$(this_class).each(function(el) { 
		el.value = i;
		i++;
	});
}

sortableReordered = false;

function checkSortable(event)
{
    if (sortableReordered) {
         Event.stop(event);
         sortableReordered = false;
    }
}

function reordered() { sortableReordered = true; }

function show_next_row(this_class) {
	shown = false;
	$$(this_class).each(function(row) {
		if (!shown && row.style.display=='none') {
			shown = true;
			row.style.display = '';
			if (row.getElementsByTagName('input')[0] && row.getElementsByTagName('input')[0].focus) 
				row.getElementsByTagName('input')[0].focus();
		};
	});
};

after_assign_display_order = null;

function createSortableTable() {
	$$('tbody.sortable').each(function(tbody) {
		css = '#' + tbody.id + ' input.display_order'
		Sortable.create(tbody.id, {tag:'tr', ghosting:true, onUpdate:function(){ 
			assign_display_order(css)
			if (after_assign_display_order) { 
				after_assign_display_order(); }
		} });
	});
}

function validatecc(x) {
  var ccnumber=x.value.replace(/\D/g, '');
  if (ccnumber.length < 13) return false;    
  var cclength=ccnumber.length;
  var parity=cclength % 2;
  var sum=0;
  for (i=0; i < cclength; i++) {
    var ccdigit=ccnumber.charAt(i);
    if (i % 2 == parity) ccdigit=ccdigit * 2;
    if (ccdigit > 9) ccdigit=ccdigit - 9;
    sum = sum + parseInt(ccdigit);
  }
  var valid=(sum % 10 == 0);
  if (valid) return true;
  else return false;
}


//------------------- for clearing and replacing text in form input fields and textareas -------------------//
function clearText(thefield) {
  if (thefield.defaultValue==thefield.value) { thefield.value = "" }
} 
function replaceText(thefield) {
  if (thefield.value=="") { thefield.value = thefield.defaultValue }
}

/* -- DOM READY http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype  -- */
try {
    Object.extend(Event, {
        _domReady : function() {
            if (arguments.callee.done) return;
            arguments.callee.done = true;
            if (this._timer) clearInterval(this._timer);
            this._readyCallbacks.each(function(f) { f() });
            this._readyCallbacks = null;
        },
        onDOMReady : function(f) {
            if (!this._readyCallbacks) {
                var domReady = this._domReady.bind(this);
                if (document.addEventListener) document.addEventListener("DOMContentLoaded", domReady, false);
                /*@cc_on @*/
                /*@if (@_win32)
                    document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
                    document.getElementById("__ie_onload").onreadystatechange = function() {
                        if (this.readyState == "complete") domReady();
                    };
                /*@end @*/
                if (/WebKit/i.test(navigator.userAgent)) {
                    this._timer = setInterval(function() {
                        if (/loaded|complete/.test(document.readyState)) domReady();
                    }, 10);
                }
                Event.observe(window, 'load', domReady);
                Event._readyCallbacks =  [];
            }
            Event._readyCallbacks.push(f);
        }
    });
} catch(e) {
}

