﻿String.prototype.trim = function() {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

String.prototype.getQuery = function () {
    if (this.contains("?")) {
        return this.split("?", 2)[1];
    }
    else {
        return "";
    }
}

String.prototype.contains = function(str) {
    return (this.indexOf(str) != -1)
}

String.prototype.param = function(paramName, value) {
	if (!paramName) {
		return false;
	}
	
	var valueIndex, returnValue;
	var url = this;
	
	if (value) {
		// set		
		if (url.contains(paramName)) {
			var paramIndex = url.indexOf(paramName);
			valueIndex = paramIndex + paramName.length + 1;
			var endValueIndex = url.indexOf("&", valueIndex) == -1 ? url.length
				: url.indexOf("&", valueIndex);
			
			var startIndex = url.charAt(paramIndex - 1) === "?" ? paramIndex - 1 : paramIndex;
			
			url = url.replace(url.slice(startIndex, endValueIndex), "");			
		}		
		return url + (url.contains("?") ? "&" : "?") + paramName + "=" + value;
		
	}
	else {
		// get
		if (!url.contains(paramName)) {
			return "";
		}
		else {
			valueIndex = url.indexOf(paramName) + paramName.length + 1;
			returnValue = url.indexOf("&", valueIndex) == -1 ? url.slice(valueIndex)
				: url.slice(valueIndex, url.indexOf("&", valueIndex));
			return returnValue;
		}
	}
    
}

String.prototype.constructDate = function () {
    var result = new Date();
    var dateArray = this.split(".");
    result.setYear(parseInt(dateArray[2], 10));
    result.setMonth(parseInt(dateArray[1], 10) - 1);
    result.setDate(parseInt(dateArray[0], 10));
    result.setHours(0, 0, 0, 0);
    return result;
}


String.prototype.toTitleCase = function () {
	var words = this.trim().replace("_", "").split(" ");
	for (var i = 0; i < words.length; i++) {
		if (words[i].length > 3) {
			var subwords = words[i].split("-");
			for (var j = 0; j < subwords.length; j++) {
				subwords[j] = subwords[j].charAt(0).toUpperCase() + subwords[j].substring(1).toLowerCase();
			}
			words[i] = subwords.join("-");			
		}		
	}
	return words.join(" ").trim();
}

Date.prototype.formatRussian = function () {
    var dateString = "";
    var tempString = "";
    tempString = "" + this.getDate();
    if (tempString.length == 1) {
        tempString = "0" + tempString;
    }
    dateString = tempString + ".";

    tempString = "" + (this.getMonth() + 1);
    if (tempString.length == 1) {
        tempString = "0" + tempString;
    }
    dateString += tempString + ".";
    dateString += this.getFullYear();

    return dateString;
}


// ---------------------------------------------

var emailFormat = /^[\w-\.]+@[\w-]+.{1,}\w{2,3}$/;
var dateFormat = /^\d{1,2}\.\d{1,2}\.\d{4}$/;
var timeFormat = /^\d{1,2}:\d{1,2}$/;

