ବ୍ୟବହାରକାରୀ:Snip1/Migrate Infobox Indian Jurisdiction to Infobox settlement/main.js

ସୂଚନା: ବଦଳଗୁଡ଼ିକ ଦେଖିବା ପାଇଁ ଆପଣଙ୍କୁ ହୁଏତ ନିଜ ବ୍ରାଉଜର କ୍ୟାସ ବାଇପାସ କରିବାକୁ ପଡ଼ିପାରେ ।

  • Firefox / Safari: Reload ଉପରେ କ୍ଲିକ କରିବା ବେଳେ Shift ଧରି କିମ୍ବା Ctrl-F5 ବା Ctrl-R ଦବାନ୍ତୁ (Macରେ ⌘-R)
  • Google Chrome: Ctrl-Shift-R ଦବାନ୍ତୁ (Macରେ ⌘-Shift-R)
  • Internet Explorer / Edge: Refresh ଉପରେ କ୍ଲିକ କଲା ବେଳେ Ctrl ଧରି ବା Ctrl-F5 ଦବାଇ
  • Opera: Ctrl-F5 ଦବାନ୍ତୁ ।
/**
 * A quick-and-dirty solution to migrate the Infobox Indian Jurisdiction to Infobox settlement
 *
 * @ମୂଳ ଲେଖକ User:Utcursch; ବଦଳା ବଦଳି କରିଛି - ବ୍ୟବହାରକାରୀ:ଶିତିକଣ୍ଠ ଦାଶ
 */

// for coord
var latd  = "";
var latm  = "";
var lats  = "";
var longd = "";
var longm = "";
var longs = "";


// for removing Indic script and moving it to native_name in the infobox
var native_name = "";
var native_name_lang = "";

/**
 * Replaces Infobox Indian Jurisdiction (if found) with Infobox settlement
 */
migrateIIJ.migrateInfoboxIJ = function () {
	// regular expression to parse Infobox Indian Jurisdiction
	var regex = /{{Infobox Indian Jurisdiction[^{]*?({{[^}]*?}}[\s\S]*?)*}}/gmi

	// get the article content
	var orig_article_text = document.getElementById("wpTextbox1").value;


	// extract latitude and longitude information from the coord template
	var regex_coord = /{{coord\|[^{]*?({{[^}]*?}}[\s\S]*?)*}}/gmi
	var arr_coord_text = orig_article_text.match(regex_coord);
	// coord found
	if (arr_coord_text != null) {
		// get coord text
		var coord_text = arr_coord_text[0];

		var coord_params = coord_text.split("|");
		if (coord_params[2] == "N") {
			// {{Coord|44.112|N|91|E}}
			latd  = coord_params[1];
			longd = coord_params[3];
		} else if (coord_params[3] == "N") {
			// {{coord|26|10|N|91|34|E|type:landmark_source:kolossus-itwiki}}
			latd  = coord_params[1];
			latm  = coord_params[2];
			longd = coord_params[4];
			longm = coord_params[5];
		} else if (coord_params[4] == "N") {
			// {{coord|26|10|10|N|91|34|21|E|type:landmark_source:kolossus-itwiki}}
			latd  = coord_params[1];
			latm  = coord_params[2];
			lats  = coord_params[3];
			longd = coord_params[5];
			longm = coord_params[6];
			longs = coord_params[7];
		} else {
			// {{coord|26|34}}
			latd  = coord_params[1];
			longd = coord_params[2];
		}

		// replace original infobox with the new one
		orig_article_text = orig_article_text.replace(regex_coord, "");
	}


	// extract lang-xyz template
	var regex_indic_script = / \({{lang[^{]*?({{[^}]*?}}[\s\S]*?)*}}\)/gmi
	var arr_indic_script_text = orig_article_text.match(regex_indic_script);
	// lang-xyz found
	if (arr_indic_script_text != null) {
		// get indic_script text
		var indic_script_params = arr_indic_script_text[0].split("|");

		native_name_lang = indic_script_params[0].substr(9, (indic_script_params[0]).length);
		native_name      = indic_script_params[1].substr(0, (indic_script_params[1]).length - 3);

		orig_article_text = orig_article_text.replace(regex_indic_script, "");
	}

	// rm unnecessary line
	orig_article_text = orig_article_text.replace("<!-- See [[Wikipedia:WikiProject Indian cities]] for details -->", "");

	// get the infobox text
	var arr_infobox_text = orig_article_text.match(regex);

	// Infobox Indian Jurisdiction not found
	if (arr_infobox_text == null) {
		return;
	}

	// get infobox text
	var infobox_text = arr_infobox_text[0];

	// parse original infobox
	orig_infobox_params = migrateIIJ.parseInfobox(infobox_text);

	// create Infobox settlement
	var new_infobox_text = migrateIIJ.prepareInfoboxSettlement(orig_infobox_params);

	// replace original infobox with the new one
	var new_article_text = orig_article_text.replace(regex, new_infobox_text);

	// Insert Infobox settlement
	document.getElementById("wpTextbox1").value = new_article_text;

	// Provide an edit summary
	var summary = "converted"
	if (document.getElementById("wpSummary")) {
		document.getElementById("wpSummary").value = "[[ବ୍ୟବହାରକାରୀ:ଶିତିକଣ୍ଠ ଦାଶ/Migrate Infobox Indian Jurisdiction to Infobox settlement|Infobox Indian Jurisdiction କୁ Infobox settlement କୁ ଘୁଞ୍ଚାଯାଉଛି]]";
	}

	if (document.getElementById("wpMinoredit")) {
		document.getElementById("wpMinoredit").checked = true;
	}
}


/**
 * Parse the infobox string to extract parameter-value pairs
 *
 * @param infobox_text the infobox string
 *     {{Infobox Indian Jurisdiction ...  }}
 *
 * @return an object contaning the infobox parameters and values
 *     orig_infobox_params["parameter"] = "value"
 */
migrateIIJ.parseInfobox = function(infobox_text) {
	// to store
	var temp_param_arr = [];

	var paramRegexp = /\s*\|[^{}|]*?((?:{{[^{}]*}}|\[?\[[^[\]]*\]?\])?[^[\]{}|]*)*/g;

	// an array of all the parameter key-value pairs
    var temp_param_arr = infobox_text.match(paramRegexp);

    if (!temp_param_arr) {
		return;
	}

	var orig_infobox_params = {};

	// for each parameter key-value pair
	for (var i = 0; i < temp_param_arr.length; i++) {

		// something like "nickname = foo<ref>{{cite web | url = x | title = y }}"
		// the regex turns "|nickname = xyz" into "nickname = xyz"
		var key_value_str = temp_param_arr[i].replace(/^\s*\|/,"");

		// something like "| nickname = foo<ref>{{cite web | url = x | title = y }}"
		key_value_str = key_value_str

		// the index of "=" in the key value string
		var index_eq = key_value_str.indexOf("=");

		// something like "nickname"
		var key = key_value_str.substr(0, index_eq).trim();

		// something like "foo<ref>{{cite web | url = x | title = y }}"
		var value = key_value_str.substr(index_eq + 1).trim();

		orig_infobox_params[key] = value;
	}

	return orig_infobox_params;
}


/**
 * Build the Infobox settlement string
 *
 * @return an object contaning the Infobox settlement parameters and values
 *     (orig_infobox_params["parameter"] = "value"
 */
migrateIIJ.prepareInfoboxSettlement = function (orig_infobox_params) {

	// state name
	var state_name = orig_infobox_params["state_name"] ? orig_infobox_params["state_name"] : "";
	// strip [[]], if any
	state_name = state_name.replace("[[", "");
	state_name = state_name.replace("]]", "");


	// Location map
	var pushpin_map = "India";
	var pushpin_map_caption = "India";

	// don't have location map templates for these
	// http://en.wikipedia.org/wiki/Category:India_location_map_templates
	var states_with_no_map = {
		"Lakshadweep" : 1,
		"Chandigarh" : 1,
		"Daman and Diu" : 1,
		"Daman & Diu" : 1
	};
	if (state_name != "" && (! states_with_no_map[state_name]) ) {
		//pushpin_map = "India " + state_name;
		pushpin_map = state_name;
		pushpin_map_caption = "Snip1/Migrate Infobox Indian Jurisdiction to Infobox settlement/main.js, " + state_name ;
	}
	if (state_name == "Punjab, India" ) {
		// don't want "India Punjab, India"
		pushpin_map = "India Punjab";
		pushpin_map_caption = "Punjab, India";
	}
	// these cities have a location map template -- use it as the pushpin_map
	var metros_with_map = {
		"Bangalore" : 1,
		"Bengaluru" : 1,
		"Bhopal" : 1,
		"Chennai" : 1,
		"Delhi" : 1,
		"Kochi" : 1,
		"Mumbai" : 1,
		"Tiruchirapalli" : 1
	}
	if (orig_infobox_params["metro"] && metros_with_map[orig_infobox_params["metro"]] ) {
		pushpin_map = "India " + orig_infobox_params["metro"];
		pushpin_map_caption = orig_infobox_params["metro"] + ", India";
	}

	// Governing body
	var governing_body = "";
	if (orig_infobox_params["civic_agency"]) {
		governing_body = orig_infobox_params["civic_agency"];
	} else if (orig_infobox_params["planning_agency"]) {
		governing_body = orig_infobox_params["planning_agency"];
	}

	// make list of subdivisions
	var subdivisions = [];
	if (state_name != "") {
		subdivisions["[[ଭାରତର ରାଜ୍ୟ ଓ କେନ୍ଦ୍ରଶାସିତ ଅଞ୍ଚଳ|ରାଜ୍ୟ]]"] = "[[" + state_name + "]]";
	}
	// display "Punjab" instead of "Punjab, India" (India is already displayed a line above)
	// also, link to "Punjab, India", if the state name is "Punjab"
	if (state_name == "Punjab, India" || state_name == "Punjab") {
		subdivisions["[[States and territories of India|State]]"] = "[[Punjab, India|Punjab]]";
	}
	if (orig_infobox_params["region"]) {
		subdivisions["[[List of regions of India|Region]]"] = orig_infobox_params["region"];
	}
	if (orig_infobox_params["division"]) {
		subdivisions["Division"] = orig_infobox_params["division"];
	}
	if (orig_infobox_params["district"]) {
		subdivisions["[[ଭାରତର ଜିଲ୍ଲାମାନଙ୍କର ତାଲିକା|ଜିଲ୍ଲା]]"] = orig_infobox_params["district"];
	}
	if (orig_infobox_params["metro"]) {
		subdivisions["Metro"] = orig_infobox_params["metro"];
	}
	if (orig_infobox_params["corp_zone"]) {
		subdivisions["Zone"] = orig_infobox_params["corp_zone"];
	}
	if (orig_infobox_params["corp_ward"]) {
		subdivisions["Ward"] = orig_infobox_params["corp_ward"];
	}
	for (var i = 1; i <= 3; i++ ) {
		if (orig_infobox_params["jurisdiction_title_" + i]) {
			var title = orig_infobox_params["jurisdiction_title_" + i];
			subdivisions[title] = orig_infobox_params["jurisdiction_name_" + i];
		}
	}

	// make list of languages
	var languages = [];
	if (orig_infobox_params["official_languages"]) {
		languages["ସରକାରୀ"] = orig_infobox_params["official_languages"];
	} else {
		if (state_name != "") {
			languages["ସରକାରୀ"] = getOfficialLanguage(state_name);
		}
	}
	if (orig_infobox_params["regional_languages"]) {
		languages["ଆଞ୍ଚଳିକ"] = orig_infobox_params["regional_languages"];
	}
	if (orig_infobox_params["languages"]) {
		var title = "Other";
		if (orig_infobox_params["languages_type"]) {
			title = orig_infobox_params["languages_type"];
		}
		languages[title] = orig_infobox_params["languages"];
	}

	// make list of other information
	var other_info = [];
	if (orig_infobox_params["districts"]) {
		other_info["No. of districts"] = orig_infobox_params["districts"];
	}
	if (orig_infobox_params["coastline"]) {
		other_info["Coastline"] = "{{Convert|" + orig_infobox_params["coastline"] + "|km|mi}}";
	}
	if (orig_infobox_params["coastline"]) {
		other_info["Coastline"] = "{{Convert|" + orig_infobox_params["coastline"] + "|km|mi}}";
	}
	if (orig_infobox_params["largest_city"]) {
		other_info["Largest city"] = orig_infobox_params["largest_city"];
	}
	if (orig_infobox_params["largest_metro"]) {
		other_info["Largest metro"] = orig_infobox_params["largest_metro"];
	}
	if (orig_infobox_params["nearest_city"]) {
		other_info["Nearest city"] = orig_infobox_params["nearest_city"];
	}
	if (orig_infobox_params["sex_ratio"]) {
		other_info["ପୁରୁଷ-ନାରୀ ଅନୁପାତ"] = orig_infobox_params["sex_ratio"] + " [[male|♂]]/[[female|♀]]";
	}
	if (orig_infobox_params["HDI"]) {
		other_info["HDI"] = orig_infobox_params["HDI"];
		if (orig_infobox_params["HDI_rank"]) {
			other_info["HDI Rank"] = orig_infobox_params["HDI_rank"];
		}
		if (orig_infobox_params["HDI_year"]) {
			other_info["HDI Year"] = orig_infobox_params["HDI_year"];
		}
		if (orig_infobox_params["HDI_category"]) {
			other_info["HDI Category"] = orig_infobox_params["HDI_category"];
		}
	}
	if (orig_infobox_params["literacy"]) {
		other_info["ସାକ୍ଷରତା"] = orig_infobox_params["literacy"] + "%";
	}
	if (orig_infobox_params["x"]) {
		other_info["Literacy rank"] = orig_infobox_params["literacy_rank"];
	}
	if (orig_infobox_params["x"]) {
		other_info["Male literacy"] = orig_infobox_params["literacy_male"];
	}
	if (orig_infobox_params["x"]) {
		other_info["Female literacy"] = orig_infobox_params["literacy_female"];
	}
	if (orig_infobox_params["legislature_type"]) {
		other_info["Legislature type"] = orig_infobox_params["legislature_type"];
	}
	if (orig_infobox_params["legislature_strength"]) {
		other_info["Legislature Strength"] = orig_infobox_params["legislature_strength"];
	}
	if (orig_infobox_params["parliament_const"]) {
		other_info["[[Lok Sabha]] constituency"] = orig_infobox_params["parliament_const"];
	}
	if (orig_infobox_params["assembly_const"]) {
		other_info["[[Vidhan Sabha]] constituency"] = orig_infobox_params["assembly_const"];
	}
	if (orig_infobox_params["planning_agency"]) {
		other_info["[[Urban planning|Planning]] agency"] = orig_infobox_params["planning_agency"];
	}
	if (orig_infobox_params["civic_agency"]) {
		other_info["Civic agency"] = orig_infobox_params["civic_agency"];
	}
	if (orig_infobox_params["iucn_category"]) {
		other_info["[[IUCN protected area categories|IUCN category]]"] = orig_infobox_params["iucn_category"];
	}
	for (var i = 1; i <= 4; i++ ) {
		if (orig_infobox_params["destination_" + i]) {
			var distance_title = "Distance from " + orig_infobox_params["destination_" + i];

			var distance_value = "";

			if (orig_infobox_params["distance_" + i]) {
				distance_value += ("{{convert|" + orig_infobox_params["distance_" + i] + "|km|mi}}");
			}
			if (orig_infobox_params["direction_" + i]) {
				distance_value += (" " + orig_infobox_params["direction_" + i]);
			}
			if (orig_infobox_params["mode_" + i]) {
				distance_value += (" (" + orig_infobox_params["mode_" + i] + ")");
			}

			other_info[distance_title] = distance_value;
		}
	}

	for (var i = 1; i <= 4; i++ ) {
		if (orig_infobox_params["blank_title_" + i]) {
			var title = orig_infobox_params["blank_title_" + i];
			other_info[title] = orig_infobox_params["blank_value_" + i];
		}
	}

	// make list of climate information
	var climate = [];
	if (orig_infobox_params["climate"]) {
		climate["[[Climate of India|Climate]]"] = "[[Climatic regions of India|" + orig_infobox_params["climate"] + "]] <small>([[Köppen climate classification|Köppen]])</small>";
	}
	if (orig_infobox_params["precip"]) {
		climate["[[Precipitation (meteorology)|Precipitation]]"] = "{{convert|" + orig_infobox_params["precip"] + "|mm|in}}";
	}
	if (orig_infobox_params["temp_annual"]) {
		climate["Avg. annual temperature"] = "{{convert|" + orig_infobox_params["temp_annual"] + "|°C|°F}}";
	}
	if (orig_infobox_params["temp_summer"]) {
		climate["Avg. summer temperature"] = "{{convert|" + orig_infobox_params["temp_summer"] + "|°C|°F}}";
	}
	if (orig_infobox_params["temp_winter"]) {
		climate["Avg. winter temperature"] = "{{convert|" + orig_infobox_params["temp_winter"] + "|°C|°F}}";
	}

	var page_name = wgPageName.replace(/_/g, " ");
	// remove state/district name
	page_name = page_name.split(",")[0];
	page_name = page_name.split(" \(")[0];

	if (orig_infobox_params["native_name"]
		&& (orig_infobox_params["native_name"] != page_name)
		&& (orig_infobox_params["native_name"] != "{{PAGENAME}}")
		&& native_name != ""
	) {
		native_name = orig_infobox_params["native_name"];
	}

	var new_infobox_str =
		"{{Infobox settlement"         + "\n" +
		"| name                    = " + page_name + "\n" +
		"| native_name             = " + native_name + "\n" +
		"| native_name_lang        = " + (orig_infobox_params["native_name_lang"] ? orig_infobox_params["native_name_lang"] : native_name_lang) + "\n" +
		"| other_name              = " + (orig_infobox_params["other_name"] ? orig_infobox_params["other_name"] : "") + "\n" +
		"| nickname                = " + (orig_infobox_params["nickname"] ? orig_infobox_params["nickname"] : "") + "\n" +
		"| settlement_type         = " + (orig_infobox_params["type"] ? orig_infobox_params["type"] : "") + "\n" +
		"| image_skyline           = " + (orig_infobox_params["skyline"] ? orig_infobox_params["skyline"] : "") + "\n" +
		"| image_alt               = " + (orig_infobox_params["skyline_alt"] ? orig_infobox_params["skyline_alt"] : "") + "\n" +
		"| image_caption           = " + (orig_infobox_params["skyline_caption"] ? orig_infobox_params["skyline_caption"] : "") + "\n";

	if (orig_infobox_params["image_flag"]) {
		new_infobox_str +=
		"| image_flag              = " + orig_infobox_params["image_flag"] + "\n" +
		"| flag_size               = " + (orig_infobox_params["flag_size"] ? orig_infobox_params["flag_size"] : "") + "\n" +
		"| flag_alt                = " + (orig_infobox_params["flag_alt"] ? orig_infobox_params["flag_alt"] : "") + "\n";
	}

	if (orig_infobox_params["image_seal"]) {
		new_infobox_str +=
		"| image_seal              = " + orig_infobox_params["image_seal"] + "\n" +
		"| seal_size               = " + (orig_infobox_params["seal_size"] ? orig_infobox_params["seal_size"] : "") + "\n" +
		"| seal_alt                = " + (orig_infobox_params["seal_alt"] ? orig_infobox_params["seal_alt"] : "") + "\n";
	}

	if (orig_infobox_params["base_map"]) {
		new_infobox_str +=
		"| image_map               = " + (orig_infobox_params["base_map"] ? orig_infobox_params["base_map"] : "") + "\n" +
		"| map_alt                 = " + (orig_infobox_params["base_map_alt"] ? orig_infobox_params["base_map_alt"] : "") + "\n" +
		"| map_caption             = " + (orig_infobox_params["map_caption"] ? orig_infobox_params["map_caption"] : "") + "\n";
	}

	new_infobox_str +=
		"| pushpin_map             = " + ((orig_infobox_params["latd"] || latd) ? pushpin_map : ("<!--" + pushpin_map + "-->")) + "\n" +
		"| pushpin_label_position  = " + (orig_infobox_params["locator_position"] ? orig_infobox_params["locator_position"] : "") + "\n" +
		"| pushpin_map_alt         = " + "\n" +
		"| pushpin_map_caption     = " + (orig_infobox_params["pushpin_map_caption"] ? orig_infobox_params["pushpin_map_caption"] : ( pushpin_map_caption + "ରେ ଅବସ୍ଥିତ")) + "\n" +
		"| latd                    = " + (orig_infobox_params["latd"] ? orig_infobox_params["latd"] : latd) + "\n" +
		"| latm                    = " + (orig_infobox_params["latm"] ? orig_infobox_params["latm"] : latm) + "\n" +
		"| lats                    = " + (orig_infobox_params["lats"] ? orig_infobox_params["lats"] : lats) + "\n" +
		"| latNS                   = " + "N\n" +
		"| longd                   = " + (orig_infobox_params["longd"] ? orig_infobox_params["longd"] : longd) + "\n" +
		"| longm                   = " + (orig_infobox_params["longm"] ? orig_infobox_params["longm"] : longm) + "\n" +
		"| longs                   = " + (orig_infobox_params["longs"] ? orig_infobox_params["longs"] : longs) + "\n" +
		"| longEW                  = " + "E\n" +
		/*
		"| coor_pinpoint           = " + "\n" +
		"| coordinates_type        = " + "\n" +
		*/
		"| coordinates_display     = inline,title" + "\n" +
		/*
		"| coordinates_footnotes   = " + "\n" +
		*/
		"| subdivision_type        = ଦେଶ" + "\n" +
		"| subdivision_name        = " + "{{flag|ଭାରତ}}\n";


	var n_subdiv = 1; // number of subdivisions
	for (var title in subdivisions) {
		new_infobox_str += (
		"| subdivision_type" + n_subdiv + "       = " + title + "\n" +
		"| subdivision_name" + n_subdiv + "       = " + subdivisions[title] + "\n"
		);
		n_subdiv++;
	}

	new_infobox_str +=
		"| established_title       = " + (orig_infobox_params["established_title"] ? orig_infobox_params["established_title"] : (orig_infobox_params["established_date"] ? "Established" : "<!-- Established -->")) + "\n" +
		"| established_date        = " + (orig_infobox_params["established_date"] ? orig_infobox_params["established_date"] : "") + "\n" +
		"| founder                 = " + "\n" +
		"| named_for               = " + "\n";

	if (orig_infobox_params["taluk_names"]) {
		new_infobox_str +=
		"| parts_type              = [[Taluka]]s" + "\n" +
		"| parts                   = " + orig_infobox_params["taluk_names"] + "\n";
	}

	if (orig_infobox_params["capital"]) {
		new_infobox_str +=
		"| seat_type               = Capital" + "\n" +
		"| seat                    = " + orig_infobox_params["capital"] + "\n";
	}
	if (orig_infobox_params["hq"]) {
		new_infobox_str +=
		"| seat_type               = Headquarters" + "\n" +
		"| seat                    = " + orig_infobox_params["hq"] + "\n";
	}

	new_infobox_str +=
		"| government_type         = " + "\n" +
		"| governing_body          = " + governing_body + "\n";

	if (orig_infobox_params["leader_title"]) {
		new_infobox_str +=
		"| leader_title            = " + orig_infobox_params["leader_title"] + "\n" +
		"| leader_name             = " + (orig_infobox_params["leader_name"] ? orig_infobox_params["leader_name"] : "") + "\n";
	}
	for (var i = 1; i <= 3; i++) {
		if (orig_infobox_params["leader_title_" + i]) {
		new_infobox_str +=
		"| leader_title" + i + "           = " + orig_infobox_params["leader_title_" + i] + "\n" +
		"| leader_name" + i + "            = " + (orig_infobox_params["leader_name_" + i] ? orig_infobox_params["leader_name_" + i] : "") + "\n";
		}
	}

	new_infobox_str +=
		"| unit_pref               = Metric" + "\n" +
		"| area_footnotes          = " + (orig_infobox_params["area_total_cite"] ? orig_infobox_params["area_total_cite"] : "") + "\n" +
		/*
		"| area_urban_footnotes    = " + "\n" +
		"| area_rural_footnotes    = " + "\n" +
		"| area_metro_footnotes    = " + "\n" +
		"| area_magnitude          = " + "\n" +
		"| area_water_percent      = " + "\n" +
		*/
		"| area_rank               = " + (orig_infobox_params["area_rank"] ? orig_infobox_params["area_rank"] : "") + "\n" +
		"| area_total_km2          = " + (orig_infobox_params["area_total"] ? orig_infobox_params["area_total"] : "") + "\n" + //TODO: not necessarily km2 in the original
		/*
		"| area_land_km2           = " + "\n" +
		"| area_water_km2          = " + "\n" +
		"| area_urban_km2          = " + "\n" +
		"| area_rural_km2          = " + "\n" +
		"| area_metro_km2          = " + "\n" +
		"| dimensions_footnotes    = " + "\n" +
		*/
		"| elevation_footnotes     = " + (orig_infobox_params["altitude_cite"] ? orig_infobox_params["altitude_cite"] : "") + "\n" +
		"| elevation_m             = " + (orig_infobox_params["altitude"] ? orig_infobox_params["altitude"] : "") + "\n" + // TODO: not necessarily m in the original
		"| population_total        = " + (orig_infobox_params["population_total"] ? orig_infobox_params["population_total"] : "") + "\n" +
		"| population_as_of        = " + (orig_infobox_params["population_as_of"] ? orig_infobox_params["population_as_of"] : "") + "\n" +
		"| population_rank         = " + (orig_infobox_params["population_rank"] ? orig_infobox_params["population_rank"] : "") + "\n" +
		"| population_density_km2  = " + (orig_infobox_params["population_density"] ? orig_infobox_params["population_density"] : "auto") + "\n"; // TODO: not necessarily km2 in the original

	if (orig_infobox_params["population_metro"]) {
		new_infobox_str +=
		"| population_metro        = " + (orig_infobox_params["population_metro"] ? orig_infobox_params["population_metro"] : "") + "\n" +
		"| population_metro_footnotes = " + (orig_infobox_params["population_metro_cite"] ? orig_infobox_params["population_metro_cite"] : "") + "\n"
	}

	new_infobox_str +=
		"| population_demonym      = " + "\n" +
		"| population_footnotes    = " + (orig_infobox_params["population_total_cite"] ? orig_infobox_params["population_total_cite"] : "") + "\n" +
		"| demographics_type1      = " + "ଭାଷା\n";

	var n_lang = 1; // number of languages
	for (var title in languages) {
		new_infobox_str += (
		"| demographics1_title" + n_lang + "    = " + title + "\n" +
		"| demographics1_info" + n_lang + "     = " + languages[title] + "\n"
		);
		n_lang++;
	}

	if (orig_infobox_params["ethnic_groups"]) {
		new_infobox_str +=
		"| demographics_type2      = " + "Ethnicity\n" +
		"| demographics2_title1    = " + "Ethnic groups\n" +
		"| demographics2_info1     = " + orig_infobox_params["ethnic_groups"] + "\n" +
		"| demographics2_title2    = " + "Year of data\n" +
		"| demographics2_info2     = " + (orig_infobox_params["ethnic_groups_year"] ? orig_infobox_params["ethnic_groups_year"] : "") + "\n";
	}

	new_infobox_str +=
		"| timezone1               = " + "[[ଭାରତୀୟ ମାନକ ସମୟ|ଆଇ.ଏସ୍.ଟି]]\n" +
		"| utc_offset1             = " + "+୫.୩୦\n" +
        "| postal_code_type        = " + (orig_infobox_params["postal_code"] ? "[[Postal Index Number|ପିନ୍‌]]" : "<!-- [[Postal Index Number|PIN]] -->") + "\n" +
		"| postal_code             = " + (orig_infobox_params["postal_code"] ? orig_infobox_params["postal_code"] : "") + "\n";

	if (orig_infobox_params["area_telephone"]) {
		new_infobox_str +=
		"| area_code_type          = " + "ଦୁରଭାଷ କୋଡ\n" +
		"| area_code               = " + (orig_infobox_params["area_telephone"] ? orig_infobox_params["area_telephone"] : "") + "\n";
	}

	if (orig_infobox_params["abbreviation"]) {
		new_infobox_str +=
		"| iso_code                = " + (orig_infobox_params["abbreviation"] ? "[[ISO 3166-2:IN|" + orig_infobox_params["abbreviation"] + "]]" : "") + "\n";
	}

	new_infobox_str +=
		"| registration_plate      = " + (orig_infobox_params["vehicle_code_range"] ? orig_infobox_params["vehicle_code_range"] : "") + "\n";

	var n_other = 1; // number of other_info items
	for (var title in other_info) {
		new_infobox_str += (
		"| blank" + (n_other == 0 ? "": n_other) + "_name_sec1        = " + title + "\n" +
		"| blank" + (n_other == 0 ? "": n_other) + "_info_sec1        = " + other_info[title] + "\n"
		);
		n_other++;
	}

	var n_climate = 1; // number of climate items
	for (var title in climate) {
		new_infobox_str += (
		"| blank" + (n_climate == 0 ? "": n_climate) + "_name_sec2        = " + title + "\n" +
		"| blank" + (n_climate == 0 ? "": n_climate) + "_info_sec2        = " + climate[title] + "\n"
		);
		n_climate++;
	}

	new_infobox_str +=
		"| website                 = " + (orig_infobox_params["website"] ? ("{{URL|" + orig_infobox_params["website"] + "}}") : "") + "\n" +
		"| footnotes               = " + (orig_infobox_params["footnotes"] ? orig_infobox_params["footnotes"] : "") + "\n" +
		"}}";

	return new_infobox_str;
}


/**
 * Return the official language of the state/UT
 * @param the name of the state/UT
 * @return the official lanugage of the state, blank if no match found
 */
var getOfficialLanguage = function (state_name) {

	var languages = {
		"Andhra Pradesh" : "[[Telugu language|Telugu]]",
		"Arunachal Pradesh" : "[[English language|English]]",
		"Assam" : "[[Assamese language|Assamese]]",
		"Bihar" : "[[Maithili language|Maithili]], [[Hindi language|Hindi]]",
		"Chhattisgarh" : "[[Hindi language|Hindi]], [[Chhattisgarhi language|Chhattisgarhi]]",
		"Goa" : "[[Konkani language|Konkani]]",
		"Gujarat" : "[[Gujarati language|Gujarati]], [[Hindi language|Hindi]]",
		"Haryana" : "[[Hindi language|Hindi]]",
		"Himachal Pradesh" : "[[Hindi language|Hindi]]",
		"Jammu and Kashmir" : "[[Urdu]]",
		"Jammu & Kashmir" : "[[Urdu]]",
		"Jharkhand" : "[[Hindi language|Hindi]], [[Santali language|Santali]]",
		"Karnataka" : "[[Kannada]]",
		"Kerala" : "[[Malayalam language|Malayalam]], [[English language|English]]",
		"Madhya Pradesh" : "[[Hindi language|Hindi]]",
		"Maharashtra" : "[[Marathi language|Marathi]]",
		"Manipur" : "[[Meiteilon]] (Manipuri)",
		"Meghalaya" : "[[English language|English]]",
		"Mizoram" : "[[Mizo language|Mizo]]",
		"Nagaland" : "[[English language|English]]",
		"Orissa" : "[[Oriya language|Oriya]]",
		"Odisha" : "[[Oriya language|Oriya]]",
		"Punjab" : "[[Punjabi language|Punjabi]]",
		"Punjab, India" : "[[Punjabi language|Punjabi]]",
		"Rajasthan" : "[[Hindi language|Hindi]]",
		"Sikkim" : "[[Nepali language|Nepali]], [[Bhutia language|Bhutia]], [[Lepcha language|Lepcha]], [[Limbu language|Limbu]], [[Newari language|Newari]], [[Kiranti languages|Rai]], [[Gurung language|Gurung]], Mangar, [[Sherpa language|Sherpa]], [[Tamang language|Tamang]] and [[Sunwar language|Sunwar]]",
		"Tamil Nadu" : "[[Tamil language|Tamil]]",
		"Tripura" : "[[Bengali language|Bengali]], [[Kokborok language|Kokborok]], [[English language|English]]",
		"Uttarakhand" : "[[Hindi language|Hindi]]",
		"Uttar Pradesh" : "[[Hindi language|Hindi]]",
		"West Bengal" : "[[Bengali language|Bengali]], [[English language|English]]",
		"Andaman and Nicobar Islands" : "[[Hindi language|Hindi]], [[English language|English]], [[Tamil language|Tamil]]",
		"Andaman and Nicobar" : "[[Hindi language|Hindi]], [[English language|English]], [[Tamil language|Tamil]]",
		"Andaman & Nicobar Islands" : "[[Hindi language|Hindi]], [[English language|English]], [[Tamil language|Tamil]]",
		"Andaman & Nicobar" : "[[Hindi language|Hindi]], [[English language|English]], [[Tamil language|Tamil]]",
		"Chandigarh" : "[[Punjabi language|Punjabi]], [[Hindi language|Hindi]], [[English language|English]]",
		"Dadra and Nagar Haveli" : "[[Marathi language|Marathi]], [[Gujarati language|Gujarati]]",
		"Dadra & Nagar Haveli" : "[[Marathi language|Marathi]], [[Gujarati language|Gujarati]]",
		"Daman and Diu" : "[[Gujarati language|Gujarati]], [[English language|English]]",
		"Daman & Diu" : "[[Gujarati language|Gujarati]], [[English language|English]]",
		"Delhi" : "[[Hindi language|Hindi]], [[English language|English]]",
		"Lakshadweep" : "[[Malayalam language|Malayalam]]",
		"Pondicherry" : "[[French language|French]], [[Tamil language|Tamil]], [[English language|English]]",
		"Puducherry" : "[[French language|French]], [[Tamil language|Tamil]], [[English language|English]]"
	};

	if (languages[state_name]) {
		return languages[state_name];
	}

	return "";
}


/**
 * initialize the program
 */
migrateIIJ.init = function() {
	// the infobox will automatically be migrated whenever the user clicks on "Edit this page"
	if (migrateIIJ.auto_replace == true) {
		// migrate the infobox
		if (wgAction == "edit") {
			migrateIIJ.migrateInfoboxIJ();
		}

		return;
	}

	// the user has to click on a portlet link to migrate the infobox
	var portletLink = mw.util.addPortletLink(
		"p-cactions",
		"#",
		"Infobox Indian Jurisdiction → settlement",
		"ca-infobox-settlement",
		"Click here to migrate the Infobox Indian Jurisdiction to Infobox settlement"
	);
	$(portletLink).click(function (e) {
		e.preventDefault();
		migrateIIJ.migrateInfoboxIJ();
	});
};

// bind to page load
$(migrateIIJ.init);